在Python中将UTF16LE文件转换为UTF8?

发布于 2024-10-11 14:36:27 字数 502 浏览 0 评论 0原文

我有一个使用 utf16le (BOM) 编码的大文件。
可以通过python将其转换为普通的UTF8吗?

类似于

file_old = open('old.txt', mode='r', encoding='utf-16-le')
file_new = open('new.txt', mode='w', encoding='utf-8')

text = file_old.read()

file_new.write(text.encode('utf-8'))

http://docs.python.org/release/2.3/lib/node126 .html (-- utf_16_le UTF-16LE)

不起作用。无法理解“TypeError:必须是 str,而不是 bytes”错误。
蟒蛇3

I have big file with utf16le (BOM) encoding.
Is it possible to convert it to usual UTF8 by python?

Something like

file_old = open('old.txt', mode='r', encoding='utf-16-le')
file_new = open('new.txt', mode='w', encoding='utf-8')

text = file_old.read()

file_new.write(text.encode('utf-8'))

http://docs.python.org/release/2.3/lib/node126.html (-- utf_16_le UTF-16LE)

Not working. Can't understand "TypeError: must be str, not bytes" error.
python 3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心如狂蝶 2024-10-18 14:36:27

您不应该对其进行编码。让 stdlib 完成它的工作。

file_new.write(text)

You should not be encoding it. Let the stdlib do its job.

file_new.write(text)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文