gpt4 book ai didi

python - 在python中解码十六进制utf8字符串

转载 作者:行者123 更新时间:2023-12-01 04:26:10 27 4
gpt4 key购买 nike

一个中文字符串:

situation a:
str = "\\xE4\\xBF\\xA1\\xE9\\x94\\x90\\xE7\\xBD\\x91\\xE7\\xA7\\x91\\xE6\\x8A\\x80\\xE6\\x9C\\xAF"
print str.decode('utf-8')
#get:\xE4\xBF\xA1\xE9\x94\x90\xE7\xBD\x91\xE7\xA7\x91\xE6\x8A\x80\xE6\x9C\xAF

situation b:
str = '\xE4\xBF\xA1\xE9\x94\x90\xE7\xBD\x91\xE7\xA7\x91\xE6\x8A\x80\xE6\x9C\xAF'
print str.decode('utf-8')
#get: correct chinese string

那么,在情况a中我怎样才能得到正确的中文字符串呢?

最佳答案

使用ast.literal_eval经过一些预处理后。如果您可以假设字符串不包含引号字符,那就特别容易:

str = "\\xE4\\xBF\\xA1\\xE9\\x94\\x90\\xE7\\xBD\\x91\\xE7\\xA7\\x91\\xE6\\x8A\\x80\\xE6\\x9C\\xAF"
print ast.literal_eval('"' + str + '"').decode('utf-8')

如果它可以包含引号,您必须做更多的工作来转义内部引号,但这是相同的基本思想。在 Python 3 上,代码必须根据您的输入实际上是 str 还是 bytes 进行更改;这很复杂,但无论如何你显然都在运行 Python 2。

关于python - 在python中解码十六进制utf8字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com