编码转换

编码转换

ascii码

0000 0001

8个位为一个字节,1个字节表示一个字符。

可以表示字母、数字、特殊符号

unicode(万国码)

  • 前期:16位         2个字节表示一个字符。
  • 后期现在:32位  4个字节表示一个字符 

utf-8(最少8位表示一个字符)

  • 英文:一个字节表示一个字符
  • 欧洲语言:两个字节表示一个字符
  • 中文(亚洲):三个字节表示一个字符

gbk(国标)

  • 英语:使用ascii码,1个字节表示一个字符
  • 中文:两个字节表示一个字符。

 

知识点补充:

    1. 编码之前的二进制不可以相互转换。
    2. 存储和传送使用0101传送,不使用unicode码,占用空间大。
    3. byte的用法跟字符串str用法一样。

python中的编码

    1. python3中的内存中的编码使用的是unicode。soPython中的字符串不能直接存储和传输。
    2. bites编码方式是非unicode。如utf-8、gbk
      • 对于英文
          • str       表现形式:“qiji”;内部编码:unicode
          • bytes   表现形式:b“qiji”;内部编码:非unicode
      • 对于中文
          • str       表现形式:“弃疾”;内部编码:unicode
          • bytes   表现形式 :b'\xe4\xb8\xad\xe5\x9b\xbd' ;  内部编码: 非unicode。     

 

encode():编码  str转化为bytes

 

1 s = 'hello girl'
2 s1 = s.encode('utf-8')
3 print(s1)

 

输出结果:

b'hello girl'

 

 

1 s = 'hello girl'
2 s1 = s.encode('gbk')
3 print(s1)

输出结果:

1 b'hello girl'

 

1 s = '中国'
2 s1 = s.encode('utf-8')
3 print(s1)

输出结果:

1 b'\xe4\xb8\xad\xe5\x9b\xbd'

 

 gbk与utf-8之前的相互转换

 

  •  gbk、utf-8之前不能直接相互转换,得通过unicode作为桥梁来转换。(先解码后转码)     

 

 

      

 

posted on 2018-03-24 15:45  弃疾  阅读(170)  评论(0)    收藏  举报

导航