Python学习之——编码方式

简介:

1.各种编码方式

 ASCII:http://zh.wikipedia.org/zh-hans/ASCII

 Unicode:http://zh.wikipedia.org/zh-hans/Unicode
 
 UTF-8:http://zh.wikipedia.org/zh/UTF-8

 GBK:http://zh.wikipedia.org/zh/%E6%B1%89%E5%AD%97%E5%86%85%E7%A0%81%E6%89%A9%E5%B1%95%E8%A7%84%E8%8C%83

GB_2312:http://zh.wikipedia.org/zh/GB_2312

2.各种编码方式的来由

 
 
1.编码:
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0).具体用哪些二进制数字表示哪个符号,当然
每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就
出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。
 
 
2.ASCII(American Standard Code for Information Interchange): 
众所周知,计算机是由美国人发明的,那么ASCII的制定也是由美国人完成的,因此ASCII的制定是为了显示现代美国英语。其中包括:
26个基本拉丁字母、阿拉伯数字和英式标点符号。
 
 
3.GB2312 :
 ASCII只能解决美国人的信息交换需求,对于以汉字汉语为交流工具的中国人必须制定自己的编码方式,才能解决信息交流的要求。
GB2312就是这样一种编码方式,它是中华人民共和国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》。

4.Unicode: 世界上有200多个国家和地区,常用的语言文字也有几十种,各国都制定了自己的编码标准。例如日本:Shift_JIS,韩国:Euc-kr,各国有各国的标
准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。 Unicode的产生就是为了解决这个问题的。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

 
 

 既然Unicode方式解决了冲突,也就是能达到全世界交换信息的需求,那又是为什么要有utf-8这种编码方式呢?看下图

5.UTF-8(8-bit Unicode Transformation Format
如果信息基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

所以,为了节约空间,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,
常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码
就能节省空间。

 

原文地址:http://www.cnblogs.com/JohnTsai/p/4220122.html
相关文章
|
13天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
14 1
|
17天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
18 1
|
9天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
7天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
18 0
|
7天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
48 0
|
9天前
|
Python
python学习14-模块与包
python学习14-模块与包
|
9天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
9天前
|
数据采集 Python
python学习9-字符串
python学习9-字符串
|
9天前
|
Python
python学习10-函数
python学习10-函数
|
9天前
|
存储 索引 Python
python学习7-元组
python学习7-元组