python中如何表示非_如何在python中显示非英语字符?

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

假设字符串(“heißen”)存储在名为text的变量中。为了确定您所处的位置,请通过调用以下命令检查此变量的类型:>>> type(text)

如果您得到,这意味着您不处理字符串,而是处理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对象。

为了解决这个问题,首先需要将源代码文件的字符集中的字符串表示形式解码为unicode对象,然后在终端的字符集中表示它。对于单个dict项,可以通过以下方法实现:print unicode(mydict, 'utf-8')

注意,如果默认编码不适用于您的终端,您需要编写:print unicode(mydict, 'utf-8').encode('utf-8')

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值