Python 编解码【初探】
编码是为了兼容字符集之间的通用性,通常可以编码的地方有:
1、系统默认编码
2、程序运行环境的编码
3、源码文件自身的编码
4、程序中的字符串编码
对于Python也是一样的:
通常中文操作系统的编码都是gbk
python运行环境默认的编码是ascII
源文件的编码可以自己确定【# -*- coding: gbk -*-】,不设置就是默认的python编码
程序内容的编码可以通过python提供的几个函数来进行转换。【如unicode】
通常python编解码的过程是这样的:
接受到一个字符--如果预先没有编码则使用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)替换其中异常的编码为?,这个相对来可能一眼就知道那些字符编码出问题了。
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20