将 \x 转义字符串转换为 UTF-8 [重复]
Posted
技术标签:
【中文标题】将 \\x 转义字符串转换为 UTF-8 [重复]【英文标题】:Converting \x escaped string to UTF-8 [duplicate]将 \x 转义字符串转换为 UTF-8 [重复] 【发布时间】:2013-08-09 18:47:27 【问题描述】:如何将看起来像 '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
的字符串转换为 Perl 或 Python 可读的字符串?
【问题讨论】:
Из файла читаю, error_log Апача @alecxe,我替换了这个词。谢谢。 @synapse, тогда 编解码器和字符串转义。 ответ ниже. 不是重复的,因为他/她也要求在 python 中进行转换在 perl 中评估转义序列并不能回答这个问题 【参考方案1】:在 python 2.7 中
>>> print '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
привет
>>> print '\\xd0\\xbf\\xd1\\x80\\xd0\\xb8\\xd0\\xb2\\xd0\\xb5\\xd1\\x82'.decode('string-escape')
привет
>>> print r'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'.decode('string-escape')
привет
在 python 3.x 中
>>> br'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'.decode('unicode-escape').encode('latin1').decode('utf-8')
'привет'
【讨论】:
>>> print '\xd0\xb6\xd0\xbe\xd0\xbf\xd0\xb0' жопа @eri,你是对的。谢谢。 我建议@synapse 有 r'\xd0\xb6\xd0\xbe\xd0\xbf\xd0\xb0',即带有斜杠的字符串。 @eri,我故意使用 '\\' 而不是原始字符串,因为这个问题不是 Python 独有的问题。 @falsetru 顺便说一句,这是俄语中相当粗鲁的词:)【参考方案2】:对于文件读取,您可以使用它而不是 open()
:
import codecs
with codecs.open('filename','r','string-escape') as f:
data=f.read()
data
将在读取f
时重新编码。
【讨论】:
以上是关于将 \x 转义字符串转换为 UTF-8 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python 2.7:如何将字符串中的 unicode 转义转换为实际的 utf-8 字符
阻碍 Python 将 JSON 数据转换为转义的特殊字符时出现 Python UnicodeDecodeError [重复]