提问人:SlugQ 提问时间:11/22/2022 更新时间:11/22/2022 访问量:232
UTF-8 字符串在 excel 中被错误地解码为 UTF-16。如何对文件进行编码和解码,以便正确显示特殊字符?
UTF-8 strings were wrongly decoded as UTF-16 in excel. How can I encode and decode the file so special characters display correctly?
问:
我收到了一个 .xlsx 文件,其中外语字符似乎最初必须编码为 utf-8,然后解码为 utf-16。
我无权访问原始文件。
例如,à 和 é³ 应分别读作 é 和 ó,它们编码为 0xC3 0xA9 和 0xC3 0xB3。相反,每个 utf-8 字符在某个时候被解码为两个 utf-16 字符。
我尝试将它们编码为字节并用 UTF-8 解码它们,但这并不能正确翻译。
这:
s = "ó".encode("utf-16")
uni = s.decode("utf-8")
print(uni)
返回以下内容:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
我已经尝试了上面的编码/解码序列,包括各种不同的参数,包括 UTF-16be 和 UTF-16le,以及解码的每个错误参数,只是切掉了 BOM,但没有一个有效。
有没有办法解决这个问题?一些库可以使这个过程比通过读取每个字符串并用 ó 替换 ó 来进行文字替换更痛苦?
答: 暂无答案
评论
"ó".encode('latin1').decode('utf8')
或更有可能在 Windows 上"ó".encode('windows-1252').decode('utf8')