基本Unicode编码/解码

2024-09-27 23:22:02 发布

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

Python 2.7.9/Windows环境

当我

print myString

我看到了:

u'\u5df1\u6b66\u8d2a\u5929\u66f2'

现在我知道我使用的控制台(gitbash)能够显示unicode。如何对myString进行编码(或解码,这是一个正确的过程),使其显示:

己武贪天曲

我知道这个问题很基本。如果有人有很好的介绍材料或参考,链接将是最受欢迎的。你知道吗


Tags: 编码环境过程windowsunicode解码材料print
3条回答

你看到的是print repr(u'\u5df1\u6b66\u8d2a\u5929\u66f2')的结果。如果isinstancetype(myString, (str, unicode))为真,则找到定义字符串的源并修复它。如果myString是其他类型,那么看看它的__str____repr____unicode__方法是如何定义的。要修复它,请删除调用不必要的repr()的代码(它可以作为格式化操作隐藏,例如"%r" % o)。你知道吗

要检查您的环境是否支持Unicode,请运行:print u'\u5929'。它应该产生。你知道吗

如果您的输入是Python文本,并且您无法更改它(您至少应该尝试将其切换为json格式),那么您可以使用ast.literal_eval(r"u'\u5929'")获取unicode字符串对象:

import ast

print ast.literal_eval(myString)

您应该使用encode方法。考虑这个例子:

str='hello'
print(str.encode(encoding='base64'))

有关可用编码的列表,请选中以下选项:

https://docs.python.org/2/library/codecs.html#standard-encodings

你应该试试这个:

message=u'\\u5df1\\u6b66\\u8d2a\\u5929\\u66f2'
print message.decode('unicode-escape')

我猜你在每个想要的角色上都误用了“\”

相关问题 更多 >

    热门问题