将二维数组保存在本地csv文件中时,打开发现中文乱码。记录下解决方法。
hList
是我的一个二维数组,利用pandas可以将其保存在本地csv文件中
import pandas as pd
data = pd.DataFrame(hList)
data.to_csv('data.csv')
解决的过程中尝试了在.to_csv
时加 encoding="utf_8"
或者gbk
,还是乱码。
查资料发现必须要这个样子才能正确保存:
import pandas as pd
data = pd.DataFrame(hList)
data.to_csv('data.csv',encoding="utf_8_sig")
python中会有一个BOM("ByteOrder Mark")
用来声明该文件的编码信息,以\ufeff
的形式放在文件首行,但python会把它当作文本解析。
"utf-8"
是以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序问题,因此它不需要BOM,所以当用"utf-8"编码方式读取带有BOM的文件时,它会把BOM当做是文件内容来处理, 就会发生错误。
"uft-8-sig"
中sig全拼为 signature 也就是"带有签名的utf-8", 因此"utf-8-sig"读取带有BOM的"utf-8文件时"会把BOM单独处理,与文本内容隔离开。
(或许与这个原因有关吧)
就这样愉快地结束吧
撒花✿✿ヽ(°▽°)ノ✿