繁体   English   中英

将Python Unicode代码点字符串转换为其实际的Unicode字符

[英]Converting Python unicode code point string to its actual unicode character

我有一个数据集,其中包含一些解析较差的文本,其中包含许多未正确转换为Unicode的Unicode字符(例如'a', '{', 'Ⅷ', '♞', ... )。

所有的反斜杠均被转义,因此每个Unicode转义序列都被解释为u旁边的\\而不是单个字符\\u\u003c/code> 。

更具体地说,我有如下所示的字符串:

>>> '\\u00e9'
'\\u00e9'

我希望他们看起来像这样:

>>> '\u00e9'
'é'

如何将第一个字符串转换为第二个字符串?

这是不导入另一个模块即可完成的一种方法。

input_string = '\\u00e9'
print(input_string.encode('latin-1').decode('unicode-escape'))
# output 
é 

首先,您需要将字符串标识为十六进制

classmethod fromhex(string)此byte类方法返回一个byte对象,对给定的string对象进行解码。 该字符串每个字节必须包含两个十六进制数字,而ASCII空格将被忽略。 https://docs.python.org/3/library/stdtypes.html#bytes.fromhex

接下来,我们需要将十六进制转换为Unicode

bytes.decode(encoding =“ utf-8”,errors =“ strict”) https://docs.python.org/3/library/stdtypes.html#bytes.decode

所以看起来像这样

char = '\\u00e9'

print (bytes.fromhex(char)[3:-1].decode('latin-1'))

暂无
暂无

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

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