我在让Python正确处理我的unicode文本方面遇到了一些问题。
我把它归结为以下内容:
>>>print 'Høst'
Høst
>>>print u'Høst'
HÃ,st
>>>u = u'Høst'
>>>u
u'H\xf8st'
sys.stdout.encoding表示它使用的是UTF-8,这很可能是第一个非unicode打印工作的原因。如果我只需要打印一些东西,那就没问题了。但是,我正在从SQL Server中的数据构建一个xml文档,然后它确实需要是真正的unicode。
我的数据看起来是非常好的unicode数据,u'H \ xf8st'对我来说是正确的,那么为什么Python会继续输出它为'HÃ,st'?
答案 0 :(得分:3)
ø
为\xc3\xb8
。对于Unicode 00F8字符(\xc3\xb8
),ø
也是UTF-8。也许您的控制台真的接受ISO-8859-1而不是UTF-8作为输入,这意味着sys.stdout.encoding是错误的。
答案 1 :(得分:0)
你在使用ipython吗?它的unicode支持被打破了,我可以用ipython重现你的输出。在标准的python shell中试试你的例子。