编码是为了兼容字符集之间的通用性,通常可以编码的地方有:
1、系统默认编码
2、程序运行环境的编码
3、源码文件自身的编码
s.decode('utf-8',ignore)忽略其中有异常的编码,仅显示有效的编码
s.decode('utf-8',replace)替换其中异常的编码为?,这个相对来可能一眼就知道那些字符编码出问题了。
1、系统默认编码
2、程序运行环境的编码
3、源码文件自身的编码
4、程序中的字符串编码
通常中文操作系统的编码都是gbk
python运行环境默认的编码是ascII
源文件的编码可以自己确定【# -*- coding: gbk -*-】,不设置就是默认的python编码
程序内容的编码可以通过python提供的几个函数来进行转换。【如unicode】
接受到一个字符--如果预先没有编码则使用unicode编码--》如果和系统的字符集不一致-->则隐性转换为系统默认的字符集--》使用系统的编码方式解码字符串
python中程序内部编解码的方式:
>>s='中文'
>>type(s) #查看s的字符类型
>>s #查看字符原码
>>print s #调用系统字符集解码
>>unicode(s,'gbk') #解码为unicode
>>type(s)
>>s
>>print s
>>s.encode('utf-8') ##编码为utf8
>>type(s)
>>s
>>print s
>>s.decode('utf-8') ##解码utf8,默认的编码方式是unicode
>>type(s)
>>s
>>print s
指定的编码字符只能用指定的编码方式解码,否则会报错。所有字符集中python的中间字符集是unicode。即如果gbk想转换为utf-8的路径不是直接转换,而是gbk->unicode->utf-8.不能直接gbk->utf-8
s.decode('utf-8',ignore)忽略其中有异常的编码,仅显示有效的编码
s.decode('utf-8',replace)替换其中异常的编码为?,这个相对来可能一眼就知道那些字符编码出问题了。