使用Python 3读取十六进制字符并将其转换为UTF-8

3

我有一个名为data.txt的文件,其中包含以下字符串:

M\xc3\xbchle\x0astra\xc3\x9fe

现在需要读取文件,并将十六进制代码解释为utf-8编码。以下是我的尝试:
#!/usr/bin/python3

import os
import sys

with open("data.txt") as f:
    for line in f.readlines():
        print( bytes(line, 'utf-8').decode("unicode_escape"))

输出会将换行符 (\x0a) 转换,但不能处理多字节的 utf-8 字符:
Mühle
straÃe
1个回答

3

尝试

line = line.decode('unicode_escape').encode('latin-1').decode('utf8')

1
谢谢,就这样。不过有一个小修正:line = bytes(line, 'utf-8').decode('unicode_escape').encode('latin-1').decode('utf8')。 - mwarning

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接