Python 2.7.9 / Windows环境
当我
print myString
我看到了:
u'\u5df1\u6b66\u8d2a\u5929\u66f2'
现在我知道我正在使用的控制台(git-bash)能够显示unicode。我如何编码(或解码,哪些是正确的过程)myString,以便它显示:
己武贪天曲
我理解这个问题非常基础。如果有人有很好的介绍性材料或参考,那么链接将是最受欢迎的。
答案 0 :(得分: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)
答案 1 :(得分:0)
你应该试试这个:
message=u'\\u5df1\\u6b66\\u8d2a\\u5929\\u66f2'
print message.decode('unicode-escape')
我猜你错过了一个" \"在每个想要的角色上
答案 2 :(得分:-2)
您应该使用encode方法。考虑这个例子:
str='hello'
print(str.encode(encoding='base64'))
有关可用编码的列表,请查看:
https://docs.python.org/2/library/codecs.html#standard-encodings