基于python 字符編碼的理解
一、字符編碼簡史:
美國:1963年 ASCII (包含127個字符 占1個字節(jié))
中國:1980年 GB2312 (收錄7445個漢字,包括6763個漢字和682個其它符號)
1993年 GB13000 (收錄20902個漢字)
1995年 GBK1.0 (收錄 21003個漢字)
2000年 GB18030 (收錄70244個漢字)
世界:1991年 unicode(‘萬國碼'也就統(tǒng)一編碼,通常占2字節(jié),復雜的漢字占4字節(jié))
UTF-8 (可變長的字符編碼)
二、python中的編碼解碼應用
Python2中的字符串進行字符編碼轉(zhuǎn)換過程是:
字節(jié)串-->decode('原來的字符編碼')-->Unicode字符串-->encode('新的字符編碼')-->字節(jié)串
#!/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的內(nèi)容、類型及長度 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的內(nèi)存、類型及長度 print(gbk_a.decode('gbk')) ---------------------------------------------------- pytharm(python2.6)運行結(jié)果: ('\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('新的字符編碼')-->字節(jié)串
#!/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的內(nèi)容、類型及長度 gbk_a = utf_8_a.encode('gbk') print(gbk_a.decode('gbk'),type(gbk_a),len(gbk_a)) -------------------------------------------------------- pycharm(python3.6)運行結(jié)果: 測試 <class 'str'> 2 測試 <class 'bytes'> 4
以上這篇基于python 字符編碼的理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python爬蟲爬取bilibili網(wǎng)頁基本內(nèi)容
這篇文章主要介紹了python爬蟲爬取bilibili網(wǎng)頁基本內(nèi)容,用爬蟲爬取bilibili網(wǎng)站排行榜游戲類的所有名稱及鏈接,下面來看看具體的實現(xiàn)過程吧,需要的朋友可以參考一下2022-01-01Django實現(xiàn)從數(shù)據(jù)庫中獲取到的數(shù)據(jù)轉(zhuǎn)換為dict
這篇文章主要介紹了Django實現(xiàn)從數(shù)據(jù)庫中獲取到的數(shù)據(jù)轉(zhuǎn)換為dict,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03np.meshgrid中的indexing參數(shù)問題解決
本文主要介紹了np.meshgrid中的indexing參數(shù)問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03Python使用colorlog實現(xiàn)控制臺管理日志多種顏色顯示
colorlog 是一個 Python 日志庫,它可以讓你在控制臺中以彩色的方式顯示日志消息,使得日志更易于閱讀和理解,下面就跟隨小編一起來看看它的具體應用吧2024-03-03