基于python 字符編碼的理解
一、字符編碼簡(jiǎn)史:
美國(guó):1963年 ASCII (包含127個(gè)字符 占1個(gè)字節(jié))
中國(guó):1980年 GB2312 (收錄7445個(gè)漢字,包括6763個(gè)漢字和682個(gè)其它符號(hào))
1993年 GB13000 (收錄20902個(gè)漢字)
1995年 GBK1.0 (收錄 21003個(gè)漢字)
2000年 GB18030 (收錄70244個(gè)漢字)
世界:1991年 unicode(‘萬(wàn)國(guó)碼'也就統(tǒng)一編碼,通常占2字節(jié),復(fù)雜的漢字占4字節(jié))
UTF-8 (可變長(zhǎng)的字符編碼)
二、python中的編碼解碼應(yīng)用
Python2中的字符串進(jìn)行字符編碼轉(zhuǎn)換過(guò)程是:
字節(jié)串-->decode('原來(lái)的字符編碼')-->Unicode字符串-->encode('新的字符編碼')-->字節(jié)串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
utf_8_a = '測(cè)試'
print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的內(nèi)容、類型及長(zhǎng)度
unicode_a = utf_8_a.decode('utf-8') #對(duì)utf_8_a進(jìn)行解碼成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)存、類型及長(zhǎng)度
print(gbk_a.decode('gbk'))
----------------------------------------------------
pytharm(python2.6)運(yùn)行結(jié)果:
('\xe6\xb5\x8b\xe8\xaf\x95', <type 'str'>, 6)
(u'\u6d4b\u8bd5', <type 'unicode'>, 2)
('\xb2\xe2\xca\xd4', <type 'str'>, 4)
測(cè)試
Python3中定義的字符串默認(rèn)就是unicode,因此不需要先解碼,可以直接編碼成新的字符編碼:
字符串-->encode('新的字符編碼')-->字節(jié)串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
utf_8_a = '測(cè)試'
print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的內(nèi)容、類型及長(zhǎng)度
gbk_a = utf_8_a.encode('gbk')
print(gbk_a.decode('gbk'),type(gbk_a),len(gbk_a))
--------------------------------------------------------
pycharm(python3.6)運(yùn)行結(jié)果:
測(cè)試 <class 'str'> 2
測(cè)試 <class 'bytes'> 4
以上這篇基于python 字符編碼的理解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python編寫(xiě)一個(gè)GUI倒計(jì)時(shí)器
這篇文章主要為大家詳細(xì)介紹了python編寫(xiě)一個(gè)GUI倒計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
解決import tensorflow as tf 出錯(cuò)的原因
這篇文章主要介紹了解決import tensorflow as tf 出錯(cuò)的原因,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python根據(jù)unicode判斷語(yǔ)言類型實(shí)例代碼
這篇文章主要介紹了python根據(jù)unicode判斷語(yǔ)言類型實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python一行代碼對(duì)話ChatGPT實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Python一行代碼對(duì)話ChatGPT實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Django 實(shí)現(xiàn)對(duì)已存在的model進(jìn)行更改
這篇文章主要介紹了Django 實(shí)現(xiàn)對(duì)已存在的model進(jìn)行更改,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
numpy系列之?dāng)?shù)組重塑的實(shí)現(xiàn)
本文主要介紹了numpy數(shù)組重塑。所謂數(shù)組重塑就是更改數(shù)組的形狀,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python+matplotlib+numpy實(shí)現(xiàn)在不同平面的二維條形圖
這篇文章主要介紹了Python+matplotlib+numpy實(shí)現(xiàn)在不同平面的二維條形圖,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01

