首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >" UTF-8 -sig“是否适合解码UTF-8和UTF-8 BOM?

" UTF-8 -sig“是否适合解码UTF-8和UTF-8 BOM?
EN

Stack Overflow用户
提问于 2020-08-20 15:29:53
回答 1查看 3.8K关注 0票数 4

我正在使用Python库读取两个CSV文件。

一个是用UTF-8-BOM编码的,另一个是用UTF-8编码的.在实践中,我发现可以使用"utf-8-sig“作为编码类型来读取这两个文件:

代码语言:javascript
复制
from csv import reader 
with open(file_path, encoding='utf-8-sig') as csv_file:
    c_reader = reader(csv_file, delimiter=',')
    headers = next(c_reader)    
    for row in c_reader:
        print(row)

我想确认," UTF-8 -sig“是否适合解码UTF-8和UTF-8 BOM?我使用的是Python版本3.6和3.7。谢谢你的回答!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-20 15:53:15

utf-8-sig编解码器将解码utf-8 sig编码文本和用标准utf-8编码编码的文本。

代码语言:javascript
复制
>>> s = 'Straße'
>>> utf8_sig = s.encode('utf-8-sig')
>>> utf8 = s.encode('utf')
>>> print(utf8_sig.decode('utf-8-sig'))
Straße
>>> print(utf8.decode('utf-8-sig'))
Straße

从编解码器文档

在将任何Unicode字符写入文件之前,会编写一个UTF-8编码的BOM (类似于字节序列: 0xef、0xbb、0xbf) .在解码时,utf-8-sig将跳过这三个字节,如果它们显示为文件中的前三个字节。

在Windows环境中最常见的utf-8-sig编码。如果您在mac或*nix系统上与用户共享文件,标准的utf-8编码是他们期望得到的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63508421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档