一、字符編碼簡史:
美國: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進行解碼成unicode print(unicode_a,type(unicode_a),len(unicode_a)) gbk_a = utf_8_a.decode('utf-8').encode('gbk') #先解碼在編碼成gbk print(gbk_a,type(gbk_a),len(gbk_a)) #打印gbk_a的內存、類型及長度 print(gbk_a.decode('gbk')) ---------------------------------------------------- pytharm(python2.6)運行結果: ('\xe6\xb5\x8b\xe8\xaf\x95',, 6) (u'\u6d4b\u8bd5', , 2) ('\xb2\xe2\xca\xd4', , 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)運行結果: 測試2 測試 4
以上這篇基于python 字符編碼的理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
