Python 字符编码简记

名称说明
ASCII只能存英文和拉丁字符,一个字符占一个字节,8位。 ASCII 码是不支持中文的,支持中文的第一张表是 GB2312
GB2312支持中文,收录了 7445个字符
GBK1.0支持中文,收录了 21886个字符
GB18030收录了 27484个汉字,及藏文,维吾尔文等少数名族文字
unicode万国码,支持所有国家和地区的编码,向下兼容 gb2312, gbk
UTF-32一个字符占用4个字节
UTF-16一个字符占2个字节或2个以上
UTF-8unicode 的扩展集,可变长的字符编码集 (一个英文用 ASCII 来存储,一个中文占3个字节)

可以简单的理解为:
1.为了处理英文字符,产生了ASCII码。
2.为了处理中文字符,产生了GB2312。
3.为了处理各国字符,产生了Unicode。
4.为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式。

注意:
Python2.x 默认编码是 ASCII
Python3.x 默认编码是 unicode,所以 Python3.x 直接支持中文不需要进行二次处理。


GBK转换成 UTF-8 的流程:
1.通过解码 (decode) 转换成 Unicode
2.通过编码 (encode) 转成成 GBK
1334255-20180328140341680-709484247.png


乱码是因为系统编码与所提供字符的编码不一致所导致的。所以当我们需要操作系统正确的输出一个字符时,除了要知道该字符的字符编码,也要知道自己系统所使用的字符编码。
Linux 系统大部分使用的是 UTF-8 编码,Windoors 系统使用的编码是 GB2312。

可以通过 chardet 来判断字符的编码
安装步骤:

1. 下载 chardet-3.0.4.tar.gz 
地址:https://pypi.python.org/pypi/chardet/3.0.4#downloads

2. 解压至安装目录
我的电脑为 D:\software\Python2.7\Lib\site-packages\chardet-3.0.4

3. 打开 Windows 命令行窗口进行安装

进入源码目录
1334255-20180328161552893-1069205201.png
使用 python setup.py install 安装
1334255-20180328161601002-2048397541.png

测试

# -*- encoding:utf-8 -*-
import chardet
name = '你好'
print(chardet.detect(name))

运行结果:
1334255-20180328161828772-669325192.png

在py2中

#-*- coding: UTF-8 -*-

声明这句话就是告诉 python2.7 解释器 (默认ACSII编码方式)解释的 .py 文件声明下面的内容按 utf8 编码,就是编码(编码成字节串最后转成0101的形式让机器去执行) 

参考:http://www.cnblogs.com/yuanchenqi/articles/5938733.html

转载于:https://www.cnblogs.com/klvchen/p/8662868.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值