pyhton 读取文件的编码问题
本帖最后由 微末非末 于 2018-2-15 09:09 编辑求大佬们耐心看完{:5_92:}
情况是这样的:今天做入门python第35讲的最后一题(统计代码量)的练习时,出现了 ‘gbk’编码问题。
然后我逐个排除问题,最后找发现是用 Idle 写的代码保存的编码格式问题。
我的测试是这样的:使用 note ++ 随便写点东西,再用代码去把那个文件的内容读出来,结果乱码 。
然后我又用记事本写了一样的东西,用同样的方法把内容读出来,结果正常显示没有乱码
我又用 note++修改我写的东西编码的格式为 ’utf-8 ‘,再去读,还是一样的的乱码。
最后我想起 open( ) 这个函数有个 encoding 这个属性(他的默认值是None),我设置成 encoding = ’utf-8 ‘这样打开再读的话就正常了。
所以我就有个两个问题想不通了:
1、记事本 保存的文本 默认的编码格式是 utf-8还是Unicode?如果是的为什么我用 note++修改文本的编码格式为 utf-8和Unicode,都是一样的乱码呢?
2、python默认的None到底是以什么编码打开文件的
来人啊{:9_233:} 我只知道有encoding那个参数,我也算个人,, 新手·ing 发表于 2018-2-15 09:16
我只知道有encoding那个参数,我也算个人,,
求大佬指点迷津{:5_92:} 我也是刚来的,跟着大家学习ing 1.记事本的默认编码是ANSI本地编码,是gbk编码,而encoding参数默认就是gbk编码,所以打开记事本不会乱码。
2.我猜测你的note++默认就是utf-8编码,所以你的修改并没有起到什么作用,你打开文件的默认编码又是gbk,所以他就乱码了。
你要么把note++改成gbk,encoding参数不改,要么不改note++,改encoding参数为utf-8,这样子做应该就不会乱码。 跟着大家学习啊,我是新手 °蓝鲤歌蓝 发表于 2018-2-15 14:44
1.记事本的默认编码是ANSI本地编码,是gbk编码,而encoding参数默认就是gbk编码,所以打开记事本不会乱码。 ...
好的,明白了。谢谢{:5_95:} 微末非末 发表于 2018-2-15 15:09
好的,明白了。谢谢
不客气 受教了。谢谢 学习
受教了 I love fishc.com {:9_226:} {:9_219:} 学习 学习一下 学习 哈哈哈 鱼币真多
页:
[1]
2