gpt4 book ai didi

python - 如何在 python 中显示非英文字符?

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:41 28 4
gpt4 key购买 nike

我有一个 python 字典,其中包含具有非英语字符的项目。当我打印字典时,python shell 无法正确显示非英文字符。我该如何解决这个问题?

最佳答案

当您的应用程序打印 hei\xdfen 时而不是 heißen ,这意味着您实际上并不是在打印实际的 unicode 字符串,而是在 unicode 对象的字符串表示形式上打印。

让我们假设您的字符串 ("heißen") 存储在名为 text 的变量中.只是为了确定你在哪里,通过调用检查这个变量的类型:

>>> type(text)

如果你得到 <type 'unicode'> ,这意味着你不是在处理一个字符串,而是一个 unicode对象。

如果您凭直觉尝试通过调用 print(text) 打印到文本你不会得到实际的文本(“heißen”),而是 unicode 对象的字符串表示

要解决这个问题,您需要知道您的终端使用哪种编码,并打印出根据给定编码编码的 unicode 对象

例如,如果您的终端使用 UTF-8 编码,您可以通过调用打印出一个字符串:

text.encode('utf-8')

这是基本概念。现在让我给你一个更详细的例子。假设我们有一个存储字典的源代码文件。喜欢:

mydict = {'heiße': 'heiße', 'äää': 'ööö'}

当您键入 print mydict 时你会得到{'\xc3\xa4\xc3\xa4\xc3\xa4': '\xc3\xb6\xc3\xb6\xc3\xb6', 'hei\xc3\x9fe': 'hei\xc3\x9fe'} .连print mydict['äää']不起作用:它会导致类似 ├Â├Â├ 的结果.通过尝试可以揭示问题的本质 print type(mydict['äää'])这会告诉你你正在处理一个 string对象。

为了解决这个问题,您首先需要将字符串表示从源代码文件的字符集中解码为 un​​icode 对象,然后在终端的字符集中表示它。对于单个 dict 项,这可以通过以下方式实现:

print unicode(mydict, 'utf-8')

请注意,如果默认编码不适用于您的终端,您需要编写:

print unicode(mydict, 'utf-8').encode('utf-8')

其中外部编码方法根据您的终端指定编码。

我真的非常强烈建议您通读 Joel 的 "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)" .除非您了解字符集的工作原理,否则您会一次又一次地遇到类似的问题。

关于python - 如何在 python 中显示非英文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8288551/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com