From: Thomas Grainger Date: Wed, 18 Mar 2015 11:22:25 +0000 (+0000) Subject: map MySQL encodings to python encodings fixes #2771 X-Git-Tag: rel_1_0_0b2~6^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5794b777cbb4a8f951ee19ac40c7aef0e2f429a1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git map MySQL encodings to python encodings fixes #2771 --- diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index b8392bd4e1..7881c47a89 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -3296,9 +3296,17 @@ class _DecodingRowProxy(object): # sets.Set(['value']) (seriously) but thankfully that doesn't # seem to come up in DDL queries. + _encoding_compat = { + 'koi8r': 'koi8_r', + 'koi8u': 'koi8_u', + 'utf16': 'utf-16-be', # MySQL's uft16 is always bigendian + 'utf8mb4': 'utf8', # real utf8 + 'eucjpms': 'ujis', + } + def __init__(self, rowproxy, charset): self.rowproxy = rowproxy - self.charset = charset + self.charset = self._encoding_compat.get(charset, charset) def __getitem__(self, index): item = self.rowproxy[index]