Python和charset

时间:2012-08-08 20:44:47

标签: python mysql character-encoding

我遇到了python charset和德语字符的问题。我正在尝试使用mysqldb从数据库中获取一个字符串,尝试这个:

array=result.fetch_row()[0]

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

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

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

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

注意:我正在使用设置名称latin1。如果我使用utf8,我会得到双打:f\xc3\xbcr

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

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

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