pandas(待完善) | to_csv中文乱码

2020-02-20 13:19:42 浏览数 (2)

起因

今天在处理工作时,需要将结果从hive读出,并保存为csv格式,然后下载。可以下载后用excel打开发现出现乱码,非我想要的。

解决方案

参考了https://blog.csdn.net/zhuzuwei/article/details/80890007的博文,在此表示感谢。

我们看下pandas官网对参数encoding 的解释,默认为utf-8,就是说 在我们不给指定时,就已经默认选择了utf-8编码格式。

这里我使用的是代码格式为utf_8_sig

代码语言:javascript复制
df.to_csv("data.csv",encoding="utf_8_sig")

比较utf-8与utf_8_sig的差异

  • utf-8 utf-8 是以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序问题,因此它不需要BOM,所以当用utf-8编码方式读取带有BOM的文件时,它会把BOM当做是文件内容来处理
  • uft-8-sig uft-8-sig中sig全拼为 signature 也就是"带有签名的utf-8”,因此"utf-8-sig"读取带有BOM的"utf-8文件时"会把BOM单独处理,与文本内容隔离开

此处待完善和进一步理解。

0 人点赞