【Python 必会技巧】利用utf-8-sig 编码格式解决写入csv 文件 ...
文章推薦指數: 80 %
先举个例子,分别以不指定编码、指定编码为utf-8、指定编码为utf-8-sig 三种方式来做比较,再将写入csv 文件和txt 文件来做个对比一、不指定编码方式 ...
【Python必会技巧】利用utf-8-sig编码格式解决写入csv文件乱码问题
ITBOB•鲍勃
于 2020-02-2021:59:22 发布
7354
收藏
51
分类专栏:
#奇技淫巧
文章标签:
utf-8-sig
utf-8
乱码
csv
python
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36759224/article/details/104417871
版权
奇技淫巧
专栏收录该内容
12篇文章
13订阅
订阅专栏
先举个例子,分别以不指定编码、指定编码为utf-8、指定编码为utf-8-sig三种方式来做比较,再将写入csv文件和txt文件来做个对比
一、不指定编码方式,直接存入csv文件
importcsv
withopen('test.csv','w')asfp:
writer=csv.writer(fp)
writer.writerow(['汉语','俄语','韩语','日语','英语'])
writer.writerow(['爱你','люблютебя','사랑해요','愛しています','loveyou'])
此时运行程序会报以下错误:
UnicodeEncodeError:'gbk'codeccan'tencodecharacter'\uc0ac'inposition14:illegalmultibytesequence
二、指定编码为utf-8,再存入csv文件
接下来尝试将内容以utf-8编码方式存入test.csv文件中,可以看到除了英文,其他的全都是乱码:
importcsv
withopen('test.csv','w',encoding='utf-8')asfp:
writer=csv.writer(fp)
writer.writerow(['汉语','俄语','韩语','日语','英语'])
writer.writerow(['爱你','люблютебя','사랑해요','愛しています','loveyou'])
三、指定编码为utf-8-sig,再存入csv文件
当将编码方式换成utf-8-sig之后,显示为正常:
importcsv
withopen('test.csv','w',encoding='utf-8-sig')asfp:
writer=csv.writer(fp)
writer.writerow(['汉语','俄语','韩语','日语','英语'])
writer.writerow(['爱你','люблютебя','사랑해요','愛しています','loveyou'])
四、不指定编码方式,直接存入txt文件
withopen('test.txt','w')asfp:
fp.write('爱你,люблютебя,사랑해요,愛しています,loveyou')
和存入csv文件一样,也会报以下错误:
UnicodeEncodeError:'gbk'codeccan'tencodecharacter'\uc0ac'inposition16:illegalmultibytesequence
五、指定编码为utf-8/utf-8-sig,再存入txt文件
以utf-8或者utf-8-sig编码方式存入test.txt文件中,内容都是完全正常的:
withopen('test.txt','w',encoding='utf-8')asfp:
fp.write('爱你,люблютебя,사랑해요,愛しています,loveyou')
withopen('test.txt','w',encoding='utf-8-sig')asfp:
fp.write('爱你,люблютебя,사랑해요,愛しています,loveyou')
utf-8与utf-8-sig有什么区别?
utf-8以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序问题,也因此它实际上并不需要BOM;uft-8-sig中sig全拼为signature,即带有签名的utf-8(UTF-8withBOM);BOM全称ByteOrderMark,字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。
为什么写入csv文件要用utf-8-sig编码?
Excel在读取csv文件的时候是通过读取文件头上的BOM来识别编码的,如果文件头无BOM信息,则默认按照Unicode编码读取。
当我们使用utf-8编码来生成csv文件的时候,并没有生成BOM信息,Excel就会自动按照Unicode编码读取,就会出现乱码问题了。
为什么写入txt文件要用utf-8编码?
在写入txt文件时,Windows会默认转码成gbk,遇到某些gbk不支持的字符就会报错,在打开文件时就声明编码方式为utf-8就能避免这个错误。
ITBOB•鲍勃
关注
关注
18
点赞
踩
51
收藏
打赏
5
评论
【Python必会技巧】利用utf-8-sig编码格式解决写入csv文件乱码问题
先举个例子,分别以不指定编码、指定编码为utf-8、指定编码为utf-8-sig三种方式来做比较,再将写入csv文件和txt文件来做个对比一、不指定编码方式,直接存入csv文件importcsvwithopen('test.csv','w')asfp:writer=csv.writer(fp)writer.writerow(['汉语',...
复制链接
扫一扫
专栏目录
Python学习笔记---utf-8与utf-8-sig两种编码格式区别
杨鑫newlife的专栏
09-27
1万+
Python学习笔记---utf-8与utf-8-sig两种编码格式区别
Windows系统——读取编码为utf-8与utf-8-sig的文件区别
GeekZW的博客
03-14
1272
Windows系统——读取编码为utf-8与utf-8-sig的文件区别
1、问题背景:
相信很多细心的朋友在实战的过程中发现,Windows系统下,利用Python或者Java读取txt文件时,控制台打印首行正常,但是若是用首行内容打开文本的话,就会报错。
(换句话说,断点调试你会发现第一行多了一串字符"\ufeff")。
Linux与Ma...
评论 5
您还未登录,请先
登录
后发表或查看评论
SPSS使用过程中出现的问题整理包括因子分析感谢各位大佬们
weixin_44394352的博客
03-26
4795
spss使用方法包括因子分析一、遇到问题:spss导入excel数据显示:对于当前服务器语言环境而言,文本值过长二、SPSS数据分析-从EXCEL导入三、因子分析在SPSS中的操作过程及结果解读
一、遇到问题:spss导入excel数据显示:对于当前服务器语言环境而言,文本值过长
出现这种错误可能是你的数据文件,所在的文件夹太深
复制到根目录下即可解决。
解决方法:spss导入Excel时出现“对当前服务器语言环境而言,文本值过长”,怎么处理
二、SPSS数据分析-从EXCEL导入
从EXCEL导入数据到
改变CSV文件的编码由gbk改为utf8
xcc_2269861428的博客
09-05
4939
/**
*改变CSV文件的编码由gbk改为utf8
*@authorxuchangcheng
*2019年9月5日
*
*/
publicclassConversionCSVcoding{
privatefinalstaticStringSOURCE_ENCODING="GBK";
privatefinalstaticStringTARGET_...
spss导入数据error:对于当前服务器语言环境而言,文本过长
Barry__jie的博客
08-11
3408
这是因为文件路径太长了,文件放的太深了
复制到桌面上,再导入就欧克了
utf-8和utf-8-sig的区别(CSV文件乱码)
热门推荐
人生苦短,我用python
07-17
2万+
前言:在写入csv文件中,出现了乱码的问题。
解决:utf-8改为utf-8-sig
区别如下:
1、”utf-8“是以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序问题,因此它不需要BOM,所以当用"utf-8"编码方式读取带有BOM的文件时,它会把BOM当做是文件内容来处理,也就会发生类似上边的错误.
2、“uft-8-sig"中sig全拼为signature也就是...
【python】UTF-8和UTF-8sig编码区别
zoetu
12-12
1300
json文件读取成dataframe出现了yurf-8编码错误
python写入文件时,encoding=‘utf-8‘格式,打开生成的csv或者excel文件,中文是乱码
zhaipupu的专栏
12-15
3068
写入文件时,encoding='utf-8’格式,打开生成的csv或者excel文件时,写入的中文是乱码。
encoding='utf-8-sig’格式写入,生成的csv文件打开后,中文是正常的。
这个是什么原因啊?
----已得到解释:python3的版本在写入文件时,编码当时如果用的utf-8,中文其实是可以读得。
用普通的文本编译器就行比如notepad++,但是用excel打开csv文件会出现中文乱码得情况,是因为python编码方式为utf-8,但是是无BOM格式的,excel软件,其对于utf-8编
pythonutf8-sig_Python利用utf-8-sig编码格式解决写入csv文件乱码问题
weixin_39640904的博客
12-15
236
先举个例子,分别以不指定编码、指定编码为utf-8、指定编码为utf-8-sig三种方式来做比较,再将写入csv文件和txt文件来做个对比一、不指定编码方式,直接存入csv文件importcsvwithopen('test.csv','w')asfp:writer=csv.writer(fp)writer.writerow(['汉语','俄语','韩语','日...
utf-8和utf-8-sig
u011854875的博客
11-07
4844
AsUTF-8isan8-bitencodingnoBOMisrequiredandanyU+FEFFcharacterinthedecodedUnicodestring(evenifit’sthefirstcharacter)istreatedasaZEROWIDTHNO-BREAKSPACE.
UTF-8以字节为编码单元,它的字
python字符串编码,区别utf-8和utf-8-sig
weixin_45105469的博客
03-26
534
python读取B.txt文件时,控制台打印首行正常,但是若是用首行内容打开文本的话,就会报错:
Traceback(mostrecentcalllast):
A
File“E:/pythonproject/multiProcess/test.py”,line32,in
withopen("%s.txt"%line,‘r’,encoding=‘utf-8’)as...
pythonutf8-sig_python字符串编码,区别utf-8和utf-8-sig
weixin_39756540的博客
12-15
635
Python读取文件首行多了"\ufeff"字符串python读取B.txt文件时,控制台打印首行正常,但是若是用首行内容打开文本的话,就会报错:Traceback(mostrecentcalllast):AFile"E:/pythonproject/multiProcess/test.py",line32,inwithopen("%s.txt"%line,'r',...
pandas.to_csv通过encoding='utf-8-sig'解决存储中文后乱码问题
tangwendi的专栏
10-23
5344
如果pandas中有中文,to_csv会导致中文乱码
df.to_csv(path_or_buf=tofile,index=False,encoding='utf-8-sig')
pd.read_csv()中encoding='utf-8'和'utf-8-sig'的区别
weixin_43184252的博客
05-14
2万+
Pandas.read_csv格式奇怪的问题
除了常见的utf-8,gbk,今天发现还有utf-8-sig
用默认格式打开是这样的:
明显是编码问题,但是用utf-8打开文件发现是这样的:
用open打开文件看到是这样的:
可以看到在文件的首部有一个\ufeff字段,那么feff是什么意思呢?
feff是一个BOM(ByteOrderMark),是一个不显示的标识字段,在utf-16或者...
编码方式设置了utf-8,打印出来还是乱码怎么解决
qq_46410929的博客
04-21
2444
提取文字出现乱码
使用utf-8-sig后仍输出为�(\ufffd)的解决方案
m0_54382074的博客
12-20
282
主要解决在合并两个csv文件时出现使用utf-8-sig后输出仍为�(\ufffd)的解决方案
解决Python写入csv文件时出现空行问题繁体中文乱码问题encoding=‘utf_8_sig‘
最新发布
nongcunqq的博客
04-21
402
withopen("test.csv","w",encoding='utf_8_sig',newline='')asfp:
writer=csv.writer(fp,delimiter=",")
#writer.writerow(["your","header","foo"])#writeheader
writer.writerows(rsp_info)
.
SublimeText3中使用encoding="utf_8_sig"参数解决DadaFrame存取csv中中文乱码问题
weixin_41855010的博客
02-14
558
我们在使用python变成print函数打印中文的时候经常会碰到乱码的问题,我们先要理解为什么会出现乱码,主要的原因还是编码的问题。
我们在计算机中会遇到很多种编码,比如unicode、gbk、utf等等。
说白了,编码就是计算机看得懂的,人看不懂的码。
我们要把人的语言翻译成计算机的语言,就要使用encode编码,然后要在输出的时候需要再把计算机的码再decode成人类能看得懂的字符。
计算机中打印乱码...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:程序猿惹谁了
设计师:我叫白小胖
返回首页
ITBOB•鲍勃
CSDN认证博客专家
CSDN认证企业博客
码龄6年
Python领域优质创作者
192
原创
4249
周排名
617
总排名
132万+
访问
等级
1万+
积分
1万+
粉丝
3643
获赞
2423
评论
7469
收藏
私信
关注
分类专栏
【数据结构与算法】
3篇
Python数据结构
1篇
Python算法
2篇
【Python数据分析】
27篇
Pandas
10篇
NumPy
6篇
Matplotlib
11篇
【Python网络爬虫】
30篇
爬虫基础
18篇
爬虫实战
12篇
逆向知识
JS逆向百例
APP逆向百例
1篇
反反爬虫
3篇
【Python基础知识】
基础学习
9篇
模块学习
9篇
CheckiO
52篇
奇技淫巧
12篇
经验总结
14篇
【Hexo博客搭建】
23篇
【个人年终总结】
1篇
【Java】
2篇
【Web前端】
4篇
【Linux】
2篇
【SQL】
4篇
【Markdown】
1篇
【Others】
9篇
最新评论
【Python必会技巧】[iforiinrange(1,10)]—列表解析式,列表中使用for循环
抹茶味盛夏:
感谢分享,找了好久
【APP逆向百例】Frida初体验,root检测与加密字符串定位
R玍一世ㄜ:
大佬,我想问一下手机安卓10如何用fildder抓包,或者怎样用电脑抓包?
谷歌浏览器检查更新时出错:无法启动更新检查(错误代码为3:0x80080005--systemlevel)
moshui_lalala:
360极速版里找不到谷歌启动项
Hexo博客优化之博客美化系列(持续更新)
DarrenHoo:
给大佬跪了
Hexo博客优化之博客美化系列(持续更新)
ITBOB•鲍勃:
这个你得去live2d那里问问
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
【APP逆向百例】Frida初体验,root检测与加密字符串定位
Python异步库asyncio、aiohttp
Python中如何解决asyncio文件描述符最大数量限制问题
2022年3篇
2021年3篇
2020年56篇
2019年116篇
2018年17篇
目录
目录
分类专栏
【数据结构与算法】
3篇
Python数据结构
1篇
Python算法
2篇
【Python数据分析】
27篇
Pandas
10篇
NumPy
6篇
Matplotlib
11篇
【Python网络爬虫】
30篇
爬虫基础
18篇
爬虫实战
12篇
逆向知识
JS逆向百例
APP逆向百例
1篇
反反爬虫
3篇
【Python基础知识】
基础学习
9篇
模块学习
9篇
CheckiO
52篇
奇技淫巧
12篇
经验总结
14篇
【Hexo博客搭建】
23篇
【个人年终总结】
1篇
【Java】
2篇
【Web前端】
4篇
【Linux】
2篇
【SQL】
4篇
【Markdown】
1篇
【Others】
9篇
目录
评论 5
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
ITBOB•鲍勃
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1【Python 必會技巧】利用utf-8-sig 編碼格式解決寫入csv 文件 ...
先舉個例子,分別以不指定編碼、指定編碼爲utf-8、指定編碼爲utf-8-sig 三種方式來做比較,再將寫入csv 文件和txt 文件來做個對比一、不指定編碼方式 ...
- 2What is the difference between utf-8 and utf-8-sig?
"sig" in "utf-8-sig" is the abbreviation of "signature" (i.e. signature utf-8 file). Using utf-8-...
- 3Python如何利用utf-8-sig编码格式解决写入csv文件乱码问题
这篇文章主要介绍了Python如何利用utf-8-sig编码格式解决写入csv文件乱码问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章 ...
- 4【Python 必会技巧】利用utf-8-sig 编码格式解决写入csv 文件 ...
先举个例子,分别以不指定编码、指定编码为utf-8、指定编码为utf-8-sig 三种方式来做比较,再将写入csv 文件和txt 文件来做个对比一、不指定编码方式 ...
- 5Python利用utf-8-sig 編碼格式解決寫入csv 檔案亂碼問題
先舉個例子,分別以不指定編碼、指定編碼為utf-8、指定編碼為utf-8-sig 三種方式來做比較,再將寫入csv 檔案和txt 檔案來做個對比.