从pythonunicode字符串获取UTF8字符代码

2024-10-01 15:44:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从命令行中读取一个字符串,我知道它是用韩语编码的UTF-8。我通过运行这样的命令来获取字符串

<my_command> | od -t x1

这给了我:

^{pr2}$

六个UTF-8字符是{eca780}{ec97ad}{2f}{eab5ad}{eab080}{0a},然后我用Python中的

utf8_str = unicode(text_from_the_cl, encoding='utf-8')

我只想看到我读过的字符串,用UTF-8代码表示。所以像\uc9c0\uc5ed/\uad6d\uac00这样的东西会很好。这只是为了检查它们是否被正确地读入。在

我还应该指出,这是Python2.6.x-我无法控制


Tags: 字符串命令行命令编码my字符commandutf
2条回答

使用encode方法:

utf8_str.encode('utf8')

请注意,utf8_str不是这个变量的好名字。原始字节序列使用UTF-8编码来表示Unicode字符;对unicode的调用将它们“解码”成实际的Unicode码位。为了找回字节,只需将代码点重新编码为UTF-8。在

如果要验证unicode字符串的内容,请使用^{} function

>>> from binascii import unhexlify
>>> unhexlify(''.join('ec a7 80 ec 97 ad 2f ea b5 ad ea b0 80 0a'.split()))
'\xec\xa7\x80\xec\x97\xad/\xea\xb5\xad\xea\xb0\x80\n'
>>> print unhexlify(''.join('ec a7 80 ec 97 ad 2f ea b5 ad ea b0 80 0a'.split())).decode('utf8')
지역/국가

>>> print repr(unhexlify(''.join('ec a7 80 ec 97 ad 2f ea b5 ad ea b0 80 0a'.split())).decode('utf8'))
u'\uc9c0\uc5ed/\uad6d\uac00\n'

unicode值的repr()结果对非ASCII和非Latin1代码点使用\uhhhh转义序列;对于拉丁语1代码点和不可打印字符,使用\xhh转义序列。在

相关问题 更多 >

    热门问题