gpt4 book ai didi

python - 在 python 中从 windows-1252 转换为 utf-8

转载 作者:行者123 更新时间:2023-12-05 09:35:52 31 4
gpt4 key购买 nike

我想在 python 中从 windows-1252 转换为 utf-8,我写了这段代码:

def encode(input_file, output_file):
f = open(input_file, "r")
data = f.read()
f.close()

# Convert from Windows-1252 to UTF-8
encoded = data.encode('Windows-1252').decode('utf-8')
with safe_open_w(output_file) as f:
f.write(encoded)

但是我有这个错误:

encoded = data.encode('Windows-1252').decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 5653: invalid continuation byte

我试图用这个元标记转换 html:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

最佳答案

您的转换方式有误。您想要从 cp1252 中解码,然后编码为 UTF-8。但后者并不是真正必要的; Python 已经为您完成了。

当您解码 某些东西时,输入应该是bytes,结果是Python 字符串。将字符串写入文件已经隐式转换它,实际上您也可以通过指定编码对读取做同样的事情。

此外,将整个文件读入内存既不优雅又浪费资源。

with open(input_file, 'r', encoding='cp1252') as inp,\
open(output_file, 'w', encoding='utf-8') as outp:
for line in inp:
outp.write(line)

关于python - 在 python 中从 windows-1252 转换为 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65553310/

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