繁体   English   中英

基本Unicode编码/解码

[英]Basic Unicode encoding/decoding

Python 2.7.9 / Windows环境

当我

print myString

我正在看:

u'\己\武\贪\天\曲'

现在我知道我正在使用的控制台(git-bash)能够显示unicode。 我如何编码(或解码,这是正确的过程)myString,以便显示:

己武贪天曲

我理解这个问题是非常基本的。 如果任何人都有很好的入门资料或参考资料,则非常欢迎链接。

您所看到的是print repr(u'\己\武\贪\天\曲') 如果isinstancetype(myString, (str, unicode))为true,则查找定义字符串的源并进行修复。 如果myString一些其他的类型,然后看看它是如何__str____repr____unicode__方法定义。 要解决这个问题; 删除调用不必要的repr()的代码(它可以隐藏为格式化操作,例如"%r" % o )。

要检查您的环境是否支持Unicode,请运行: print u'\天' 它应该产生

如果您的输入是Python文字并且您无法更改(您至少应尝试将其切换为json格式),则可以使用ast.literal_eval(r"u'\天'")来获取unicode字符串宾语:

import ast

print ast.literal_eval(myString)

您应该尝试这样:

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

我猜您在每个想要的字符上都错了一个“ \\”

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

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

有关可用编码的列表,请检查以下内容:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM