【发布时间】:2014-12-28 13:01:54
【问题描述】:
我有以下字符串: u'\xe4\xe7\xec\xf7 \xe4\xf9\xec\xe9\xf9\xe9' 在 windows-1255 中编码,我想将其解码为 Unicode 代码点(u' \u05d4\u05d7\u05dc\u05e7 \u05d4\u05e9\u05dc\u05d9\u05e9\u05d9')。
>>> u'\xe4\xe7\xec\xf7 \xe4\xf9\xec\xe9\xf9\xe9'.decode('windows-1255')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\encodings\cp1255.py", line 15, in decode
return codecs.charmap_decode(input,errors,decoding_table)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
但是,如果我尝试解码字符串: '\xe4\xe7\xec\xf7 \xe4\xf9\xec\xe9\xf9\xe9' 我没有得到异常:
>>> '\xe4\xe7\xec\xf7 \xe4\xf9\xec\xe9\xf9\xe9'.decode('windows-1255')
u'\u05d4\u05d7\u05dc\u05e7 \u05d4\u05e9\u05dc\u05d9\u05e9\u05d9'
如何解码 Unicode 十六进制字符串(获得异常的字符串)或将其转换为可解码的常规字符串?
感谢您的帮助。
【问题讨论】:
标签: python string python-2.7 unicode hex