python3基础之字符串的编码解码

  • Post author:
  • Post category:python




字符串的编码解码处理

  • 编码:将计算机中的字符串按照一定的顺序表示成二进制数据的过程。

  • 二进制:0/1 每一个二进制数字,表示一位,通常计算机中:0000 0001。

    字节:二进制数据~8位一个字节:0000 0001 = 一个字节

    字符:2个字节 == 1个字符;通常情况下我们使用的字符串~就是使用字符编码的!

  • 计算机 -> 表示[英文字母、数字、部分特殊符号]-> ascii编码[0~256]。

  • 周边国家 -> 表示[英文字母、数字、特殊符号、其他相似语言]-> ANSI。

  • 使用国家扩展-> 要表示更多的语言和数据-> 扩展ANSI编码。

  • 天朝-> 引入计算机-> 表示汉字-> 国家标准编码 -> GB2312-> GBK -> GB18030,

    一个字节表示一个英文字母、数字、特殊符号等等,

    两个字节表示汉字-> 字符(两个字节)。

  • 推出了一种新编码:万国码,统一字符编码[号称可以统一全球范围内任何语言的表示方式],任何语言中的任何数据,都可以使用一个字符来表示,unicode编码。

  • UTF-8(数据传输编码:unicode transfer format 8 bit)

    UTF-8就是每次8个位传输数据,而UTF-16就是每次16个位。

    UTF-8就是在互联网上使用最广的一种unicode的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。

    UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。从unicode到utf-8并不是直接的对应,而是要过一些算法和规则来转换。

    按照固定的编码进行传输,接收方按照固定的编码进行解码得到正确数据。

Unicode是字符集,UTF-8 是编码规则。

一个汉字在UTF-8编码的情况下可能需要三个字节,使用gbk两个字节就足够了,所以有时候为了节省流量和硬盘,在面对中文世界时,也有使用gbk或者gbk2312编码的。



python字符串的编码和解码

要命的规则:字符串的编码解码,一直都是任何语言中一个难点和重点。任何字符串->都是由字节组成的!

python3中:字符:(str);字节(bytes)

字符->字节:encode 编码:将一个字符串编码成计算机可以操作的二进制数据。

字节->字符:decode 解码:将一个二进制数据按照指定的编码~解码成自然数据。

s = “大天朝”  # s:<class ‘str’>
x = s.encode(“utf-8”)   # x:<class ‘bytes’>
x-> b’\xb9\x00\xa5..’

x2 = x.decode(“utf-8”)  # x2:<class ‘str’>
x2 -> “大天朝”



版权声明:本文为llf_cloud原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。