2024-09-27 23:22:02 发布
网友
Python 2.7.9/Windows环境
当我
print myString
我看到了:
u'\u5df1\u6b66\u8d2a\u5929\u66f2'
现在我知道我使用的控制台(gitbash)能够显示unicode。如何对myString进行编码(或解码,这是一个正确的过程),使其显示:
己武贪天曲
我知道这个问题很基本。如果有人有很好的介绍材料或参考,链接将是最受欢迎的。你知道吗
你看到的是print repr(u'\u5df1\u6b66\u8d2a\u5929\u66f2')的结果。如果isinstancetype(myString, (str, unicode))为真,则找到定义字符串的源并修复它。如果myString是其他类型,那么看看它的__str__、__repr__、__unicode__方法是如何定义的。要修复它,请删除调用不必要的repr()的代码(它可以作为格式化操作隐藏,例如"%r" % o)。你知道吗
print repr(u'\u5df1\u6b66\u8d2a\u5929\u66f2')
isinstancetype(myString, (str, unicode))
myString
__str__
__repr__
__unicode__
repr()
"%r" % o
要检查您的环境是否支持Unicode,请运行:print u'\u5929'。它应该产生天。你知道吗
print u'\u5929'
天
如果您的输入是Python文本,并且您无法更改它(您至少应该尝试将其切换为json格式),那么您可以使用ast.literal_eval(r"u'\u5929'")获取unicode字符串对象:
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')
我猜你在每个想要的角色上都误用了“\”
你看到的是
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
字符串对象:您应该使用encode方法。考虑这个例子:
有关可用编码的列表,请选中以下选项:
https://docs.python.org/2/library/codecs.html#standard-encodings
你应该试试这个:
我猜你在每个想要的角色上都误用了“\”
相关问题 更多 >
编程相关推荐