我遇到了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
感谢您的帮助!
答案 0 :(得分:1)
如果'f\xfcr'
是从数据库返回的内容,并且与您需要写入文件的内容相同,唯一的问题是打印时显示的内容。为此你需要做翻译。
>>> print 'f\xfcr'.decode('latin1')
für
这是有效的,因为print
命令会自动将decode
生成的Unicode转换回显示器使用的字符集。