作为一个初学者,在实践过程中会碰到很多的问题,在不断的解决问题中壮大自己是驱动我学习的动力。
今天用python 2.7.11,自带的IDLE编了一些代码,但是发现无法保存,后来查阅很多资料发现原来需要在代码的开始加上 # -*- coding:utf-8 -*- 这个命令行。
根据网上的说法,在# -*- coding:utf-8 -*- 是为了在处理IDLE中的中文字符不出错。如果代码中含有中文字符 需要通过utf-8这个格式处理,否则系统默认为ACSII编码。
貌似 python3.X的版本不用这个声明
另外,程序中中文乱码的处理方法(网上收集):
程序中有 打印中文的命令时,如果输出的为乱码,可以在程序的开始阶段输入声明:
# -*- coding: cp936 -*-
或者
方法一:
在文件的开头加入编码声明:
#coding = gbk
s = '谷歌'
print s
输出结果:谷歌
方法二:
在输出时进行转码:
#coding = utf-8
s = '谷歌'
print unicode(s,'gbk')
输出结果:谷歌
txt文件中文乱码处理
某些软件,如notepad,在保存一个以utf-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xef 0xbb 0xbf,即bom)。因此我们在读取时需要自己去掉这些字符,python中的codecs

在使用Python 2.7.11的IDLE编辑代码时,需要在开头添加`# -*- coding:utf-8 -*-`才能保存含中文字符的代码。此声明用于处理IDLE中的中文字符编码,防止出现错误。Python 3.x版本可能不需要此声明。针对程序中的中文乱码,可以采用在文件头部指定编码方式或者在输出时进行转码的方法解决。对于UTF-8编码的TXT文件,可能存在BOM头,读取时需要去除。
最低0.47元/天 解锁文章

3178

被折叠的 条评论
为什么被折叠?



