字符编码格式总结以及相互转换(utf-8、gbk、ascii)

字符编码

  • ASCII(英文)
    • ASCII ((American Standard Code for Information Interchange):
  • GB2312(汉字)
  • Unicode(统一码、万国码、单一码)多语言
  • UTF-8
  • GBK = cp936
  • 字符转换(encode 和 decode)
    • encoding(编码)
    • decoding(解码)
    • utf-8和gbk
    • utf和gbk的转换

ASCII(英文)

ASCII ((American Standard Code for Information Interchange):

美国信息交换标准代码
是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。

GB2312(汉字)

信息交换用汉字编码字符集
由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB 2312—1980。
GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。

Unicode(统一码、万国码、单一码)多语言

是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

UTF-8

8位元,Universal Character Set/Unicode Transformation Format
对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。
因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

GBK = cp936

GBK全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification) ,中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订,国家技术监督局标准化司、电子工业部科技与质量监督司1995年12月15日联合以技监标函1995 229号文件的形式,将它确定为技术规范指导性文件。这一版的GBK规范为1.0版。

字符转换(encode 和 decode)

encoding(编码)

ncoding意思是编码,是将信息分类的结果用一种易于被计算机和人识别的符号体系表示出来的过程,是人们统一认识、统一观点、相互交换信息的一种技术手段。

decoding(解码)

解码是一种用特定方法,把数码还原成它所代表的内容或将电脉冲信号、光信号、无线电波等转换成它所代表的信息、数据等的过程。解码是受传者将接受到的符号或代码还原为信息的过程,与编码过程相对应。

utf-8和gbk

utf = open("utf-8.txt",'r')
utf_read = utf.read()
print(utf_read)
结果:
Traceback (most recent call last):
  File "E:/scribe_upon/csdn/code__.py", line 12, in 
    utf_read = utf.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 8: illegal multibyte sequence

open()方法默认的编码方式是系统的编码方式(即locale.getpreferredencoding()返回值)

>>> import locale
>>> locale.getpreferredencoding()
'cp936'
>>>

cp936 就是GBK
因此打开utf-8编码形式得用encoding=‘utf-8’

utf = open("utf-8.txt",'r', encoding='utf-8')
utf_read = utf.read()
print(utf_read)

utf和gbk的转换

无法在编译器上直接进行转换
通过编码软件(Notpad++)进行转化

你可能感兴趣的:(编码格式,utf-8,gbk)