Python写入unicode字符错误

2024-03-28 08:45:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在让Python正确处理unicode文本时遇到了一些问题。在

我把它归结为以下几点:

>>>print 'Høst'
Høst
>>>print u'Høst'
HÃ,st
>>>u = u'Høst'
>>>u
u'H\xf8st'

在系统标准输出编码说它使用的是UTF-8,这很可能是第一个非unicode打印工作的原因。如果我只需要打印一些东西,那就可以了。不过,我正在从SQL Server中的数据构造一个xml文档,然后它实际上需要真正的unicode。在

我的数据看起来是非常好的unicode数据,u'H\xf8st'在我看来是正确的,那么为什么Python总是将它输出为'HÃ,st'?在


Tags: 数据文本编码sql标准server系统unicode
2条回答

你在用ipython吗?它对unicode的支持被破坏了,我可以用ipython重现您的输出。在标准pythonshell中尝试您的示例。在

在ISO-8859-1中,ø\xc3\xb8\xc3\xb8也是Unicode 00F8字符的UTF-8(ø)。也许您的主机真正接受ISO-8859-1而不是UTF-8作为输入,这意味着系统标准输出编码是错误的。在

相关问题 更多 >