一、字符編碼簡史:
美國:1963年 ASCII (包含127個字符 占1個字節)
中國:1980年 GB2312 (收錄7445個漢字,包括6763個漢字和682個其它符號)
1993年 GB13000 (收錄20902個漢字)
1995年 GBK1.0 (收錄 21003個漢字)
2000年 GB18030 (收錄70244個漢字)
世界:1991年 unicode(‘萬國碼'也就統一編碼,通常占2字節,復雜的漢字占4字節)
UTF-8 (可變長的字符編碼)
二、python中的編碼解碼應用
Python2中的字符串進行字符編碼轉換過程是:
字節串-->decode('原來的字符編碼')-->Unicode字符串-->encode('新的字符編碼')-->字節串
#!/usr/bin/env python# -*- coding:utf-8 -*-utf_8_a = '測試'print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的內容、類型及長度unicode_a = utf_8_a.decode('utf-8') #對utf_8_a進行解碼成unicodeprint(unicode_a,type(unicode_a),len(unicode_a))gbk_a = utf_8_a.decode('utf-8').encode('gbk') #先解碼在編碼成gbkprint(gbk_a,type(gbk_a),len(gbk_a)) #打印gbk_a的內存、類型及長度print(gbk_a.decode('gbk'))----------------------------------------------------pytharm(python2.6)運行結果:('/xe6/xb5/x8b/xe8/xaf/x95', <type 'str'>, 6)(u'/u6d4b/u8bd5', <type 'unicode'>, 2)('/xb2/xe2/xca/xd4', <type 'str'>, 4)測試Python3中定義的字符串默認就是unicode,因此不需要先解碼,可以直接編碼成新的字符編碼:
字符串-->encode('新的字符編碼')-->字節串
#!/usr/bin/env python# -*- coding:utf-8 -*- utf_8_a = '測試'print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的內容、類型及長度gbk_a = utf_8_a.encode('gbk')print(gbk_a.decode('gbk'),type(gbk_a),len(gbk_a)) --------------------------------------------------------pycharm(python3.6)運行結果:測試 <class 'str'> 2測試 <class 'bytes'> 4以上這篇基于python 字符編碼的理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答