gpt4 book ai didi

python - 为什么 Python unicode 字符串需要对 UTF-8 BOM 进行特殊处理?

转载 作者:太空狗 更新时间:2023-10-29 17:09:59 26 4
gpt4 key购买 nike

出于某种原因,Python 在从 UTF-8 文件中读取 unicode 字符串时,似乎遇到了 BOM 问题。请考虑以下事项:

with open('test.py') as f:
for line in f:
print unicode(line, 'utf-8')

看起来很简单,不是吗?

这就是我的想法,直到我从命令行运行它并得到:

UnicodeEncodeError: 'charmap' codec can't encode character u'\ufeff' in position 0: character maps to <undefined>

对 Google 的简短访问显示 BOM 必须手动清除:

import codecs
with open('test.py') as f:
for line in f:
print unicode(line.replace(codecs.BOM_UTF8, ''), 'utf-8')

这个运行良好。但是,我很难看到其中的任何优点。

上述行为背后是否存在基本原理?相比之下,UTF-16 可以无缝运行。

最佳答案

'utf-8-sig' 编码将代表您使用 BOM 签名。

关于python - 为什么 Python unicode 字符串需要对 UTF-8 BOM 进行特殊处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274478/

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