-1

我在使用 python 字符集和德语字符时遇到问题。我正在尝试使用 mysqldb 从数据库中获取字符串,尝试这样做:

array=result.fetch_row()[0]

如果我打印数组,我会得到所有值和我的字符串 'f\xfcr' <-- 这就是我需要的。

但是如果我打印array[stringlocation]我得到'f�r'代表 66 fc 72 (为什么不再是这个 unicode 了?)

如果我将其写入文件:'fÃŒr'或十六进制 66 C3 BC 72

我认为这不是mysqldb的问题。我无法获得所需的字符。

注意:我使用的是 latin1 的集合名称。如果我使用 utf8,我会得到双打:f\xc3\xbcr

谢谢您的帮助!

4

1 回答 1

1

如果'f\xfcr'是从数据库返回的内容,并且与您需要写入文件的内容相同,那么唯一的问题是打印时显示的内容。为此,您需要进行翻译。

>>> print 'f\xfcr'.decode('latin1')
für

这是有效的,因为该print命令会自动将生成的 Unicode 转换decode回显示器使用的字符集。

于 2012-08-08T22:00:16.253 回答