天天看点

python常用编码 Unicode & UTF-8

在python中要使用中文的话,需要在前2行加入

# coding=utf-8
           

或者

# -*- coding: utf-8 -*-
           

因为python默认采用ASCII编码,而ASCII编码并没有包含中文字符。

计算机中以二进制来存储信息,计算机最先在美国出现,美国人用8 bit(即8个二进制码)来表示单个字符。

为了在计算机中使用中文,中国诞生了GB2312和GBX等中文编码,但是各个国家各自搞一套编码不好交流

ISO组织颁布了Unicode编码,后面又诞生了UTF-8。

一、ASCII 编码

1、编码长度:8位 ,定长

2、编码规则:

a、0x00~0x1f 及0x7f (共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、等;

ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。

b、32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。

c、65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

3、可用字符:英文,数字,半角符号

二、Unicode

1、编码长度:16位,定长

2、编码规则:Unicode 的编码方式与 ISO 10646 的通用字元集(亦称[通用字符集])(Universal Character Set,UCS)概念相对应,目前的用于实用的 Unicode 版本对应

于 UCS-2,使用16位的编码空间。也就是每个字符占用2个字节。这样理论上一共最多可以表示 216 个字符。基本满足各种语言的使用。实际上目前版本的 Unicode

  尚未填充满这16位编码,保留了大量空间作为特殊使用或将来扩展。

3、可用字符:中文、英文、各国文字

三、UTF-8

1、编码长度:单字节字符8位,变长

2、编码规则:

a、单字节的字符,字节第一位为0,对于英文字母、数字和符号,UTF-8只占用一个字节,和ASCII码一样

b、多字节的字符(字符数为n,n>1),第一个字节前n位为1,第n+1为0,剩余的(n-1)个字节开头用10****** ,后面用Unicode补齐,同时高位补0

3、可用字符:中文、英文、各国文字

UTF-8是面向传输的,它在保证传输各国文字的同时,减少了传输过程中所需要的码元数量,简单来说流量和硬盘空间的消耗。