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