Python写unicode字符错误

时间:2011-03-10 12:06:04

标签: python unicode

我在让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'?

2 个答案:

答案 0 :(得分:3)

ISO-8859-1中的

ø\xc3\xb8。对于Unicode 00F8字符(\xc3\xb8),ø也是UTF-8。也许您的控制台真的接受ISO-8859-1而不是UTF-8作为输入,这意味着sys.stdout.encoding是错误的。

答案 1 :(得分:0)

你在使用ipython吗?它的unicode支持被打破了,我可以用ipython重现你的输出。在标准的python shell中试试你的例子。