首先从结论
在Python中使用UTF-8 BOM进行读取时,对
进行编码
指定
\\'utf_8_sig \\'。
读取文件的示例
从str类型(UTF-8)转换为unicode类型
牡蛎介绍
我有点沉迷于阅读Python中的UTF-8,因此我将其写下来以防止忘记。
什么是BOM
UTF-8可能具有BOM(字节顺序标记)。
这是编码为UTF-8的标识符。
文件的前3个字节为\\'EF BB BF \\'。
问题在于存在带有BOM的UTF-8和不带有BOM的UTF-8。
具有BOM表的UTF-8附加到Windows \\'Notepad \\'或Excel。
Linux和Mac似乎基本上可以处理没有BOM的UTF-8。
在Python中使用UTF-8 BOM处理文件
这次我想加载在Excel中编辑过的csv,因此我不得不考虑BOM。
如果您认为它是
,则将其写在文档中。
标记为UTF-8的正式文档BOM表
如果将\\'utf_8_sig \\'设置为编码编解码器,则
如果有BOM,则将跳过并读取它。
如果没有BOM,则可以按原样将其读取为UTF-8。
样例程序
ImportCSV.py
1 2 3 4 | import io with io.open('sample.csv', 'rt', encoding='utf_8_sig') as f: print(f.readlines()) |
最后
字符代码在Python中容易上瘾,但是如果在转换为Unicode类型时可以正确处理字符代码,则不必担心字符代码。