unicode字符未正确显示

2024-04-26 22:40:48 发布

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

我对一组网站进行了爬网,并提取了不同的字符串,其中包含unicode编码的字符,比如“在D\xfcsseldorf中吃的最好的地方”。我把它们存储在PostgreSQL数据库中。当我从数据库中检索前面提到的字符串并执行以下操作时:

name = string_retrieved_from_database
print name

输出为unicode u“D\xfcsseldorf中的最佳吃的地方”。我想展示这条线的本来面目:“杜塞尔多夫最好的吃的地方”。我怎么能做到呢。在


Tags: 字符串namefrom数据库编码string网站postgresql
2条回答

你确定你在打印变量时得到输出,而不是仅仅以交互方式显示?使用print时,不应获得u'...'显示:

>>> x = b"Best places to eat in D\xfcsseldorf"
>>> x.decode('latin-1')
u'Best places to eat in D\xfcsseldorf'
>>> print x.decode('latin-1')
Best places to eat in Düsseldorf

如果你在实际的字符串中得到反斜杠等等,那么可能在编码阶段出了问题(例如,文本中写入了字面反斜杠)。在这种情况下,您可能需要查看“unicode escape”编解码器:

^{pr2}$

你需要尽快处理编码。最好的方法是读取HTML页面,将得到的字节字符串解码为Unicode,然后将字符串作为Unicode存储在数据库中,或者至少以统一的编码方式(如UTF8)存储。在

如果您需要有关详细信息的帮助,Pragmatic Unicode, or, How Do I Stop The Pain将提供所有这些信息。在

相关问题 更多 >