欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中字符串的編碼與解碼詳析

 更新時(shí)間:2020年12月03日 17:15:14   作者:Dog.泰迪  
這篇文章主要給大家介紹了關(guān)于python中字符串的編碼與解碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. 常用的編碼

  • ASCII:只能表示一些字母,數(shù)字和特殊的字符,占一個(gè)字節(jié)
  • GBK:國(guó)家簡(jiǎn)體中文字符集和繁體字符集,兼容ASCII,占兩個(gè)字節(jié)
  • Unicode:能夠表示全世界上所有的字符,Unicode有人說(shuō)占4個(gè)字節(jié)也有人說(shuō)占2個(gè)字節(jié),但中文占2個(gè)字節(jié)
  • UTF-8:Unicode的壓縮版,占1~3個(gè)字節(jié),其中中文占三個(gè)字節(jié)

2.補(bǔ)充:計(jì)算機(jī)表示的單位:

bit: 位,計(jì)算機(jī)最小的表示單位

bytes:字節(jié),最小的存儲(chǔ)單位,1bytes=8bit,1bytes簡(jiǎn)寫成1B

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

......

3.ASCII編碼

ASCII編碼是基于拉丁字母一套編碼,主要是顯示現(xiàn)代英語(yǔ)和其西歐語(yǔ)言,是最早通用的單字節(jié)編碼系統(tǒng),具體ASCII對(duì)照表如下:

在對(duì)照表中需要記住的是大寫字母A的編碼是65,小寫字母a的編碼的97即可。

在python中可以使用chr和ord方法進(jìn)行轉(zhuǎn)換:

# 將數(shù)字類型轉(zhuǎn)換成ASCII對(duì)應(yīng)的字符
print(chr(97)) # a
# 將數(shù)字轉(zhuǎn)換成對(duì)應(yīng)的數(shù)據(jù)
print(ord("A")) # 65
# 或者使用

但隨著事件的發(fā)展,ASCII編碼擴(kuò)展到了256個(gè)字符,編碼 對(duì)照表如下:

其中后128個(gè)字符稱為擴(kuò)展ASCII碼

2.GBK和GB2312編碼

由于ASCII編碼只能由256個(gè)字符組成,然只能由1個(gè)字節(jié)來(lái)表示中文是不可能的,因此制定了GB2312編碼,用來(lái)表示中文的對(duì)照表

4.Unicode

為了解決各個(gè)國(guó)家編碼沖突的問(wèn)題,Unicode編碼就因此而生,Unicode把所有語(yǔ)言都統(tǒng)一到一套編碼里面,就會(huì)避免沖突,產(chǎn)生亂碼。

Unicodeb標(biāo)準(zhǔn)在不斷發(fā)展,最常用的是用兩個(gè)字節(jié)表示一個(gè)字符,也有的字符是4個(gè)字節(jié),但是中文是占兩個(gè)字節(jié)。如果統(tǒng)一成Unicode編碼,在存儲(chǔ)和傳輸上就不劃算

5.UTF-8編碼

為了解決Unicode編碼存儲(chǔ)過(guò)大的問(wèn)題,就推出了可變長(zhǎng)編碼UTF-8,UTF-8編碼把一個(gè)Unicode字符依據(jù)不同的數(shù)據(jù)大小編程1~6個(gè)字節(jié),其中中文就占3個(gè)字節(jié)

6.編碼和解碼

1.編碼操作

可以通過(guò)encode進(jìn)行編碼,其中語(yǔ)法如下:

對(duì)字符串進(jìn)行ASCII編碼(只能轉(zhuǎn)換數(shù)字,英文字母和一些符號(hào))

# 方式1: 通過(guò)bytes方法
bytes('a', 'ASCII')
# 方式2: 通過(guò)encode方法進(jìn)行
'a'.encode('ASCII') 

將字符串轉(zhuǎn)換成gbk編碼格式

# 方式1: 通過(guò)encode方法進(jìn)行
print('你好'.encode('GBK')) # 編碼之后的結(jié)果為:b'\xc4\xe3\xba\xc3'
# 方式2: 通過(guò)bytes類型
print(bytes('我愛(ài)你', 'GBK')) # 編碼之后的結(jié)果為:b'\xce\xd2\xb0\xae\xc4\xe3'

將字符串轉(zhuǎn)換成Unicode編碼格式

# 方式1: 通過(guò)encode方法進(jìn)行
print('你好'.encode('unicode_escape')) # 編碼之后的結(jié)果為:b'\\u4f60\\u597d'
# 方式2: 通過(guò)bytes類型
print(bytes('我愛(ài)你', 'unicode_escape')) # 編碼之后的結(jié)果為:b'\\u6211\\u7231\\u4f60'

將字符串轉(zhuǎn)換成UTF-8編碼格式

# 方式1: 通過(guò)encode方法進(jìn)行
print('你好'.encode('utf-8')) # 編碼之后的結(jié)果為:b'\xe4\xbd\xa0\xe5\xa5\xbd'
# 方式2: 通過(guò)bytes類型
print(bytes('我愛(ài)你', 'utf-8')) # 編碼之后的結(jié)果為:b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'

2.解碼操作

將GBK編碼格式轉(zhuǎn)換成字符串

# 通過(guò)decode方法解碼
print(b'\xc4\xe3\xba\xc3\xce\xd2\xb0\xae\xc4\xe3'.decode('GBK')) # 解碼之后結(jié)果為:你好我愛(ài)你

將UTF-8編碼格式轉(zhuǎn)換成字符串

# 通過(guò)decode方法解碼
print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode('utf-8')) # 解碼之后結(jié)果為:你好我愛(ài)你

將Uniconde編碼格式轉(zhuǎn)換成字符串

# 通過(guò)decode方法解碼
print(b'\\u4f60\\u597d\\u6211\\u7231\\u4f60'.decode('GBK')) # 解碼之后結(jié)果為:你好我愛(ài)你

到此這篇關(guān)于python中字符串的編碼與解碼的文章就介紹到這了,更多相關(guān)python字符串的編碼與解碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • python將txt文件讀入為np.array的方法

    python將txt文件讀入為np.array的方法

    今天小編就為大家分享一篇python將txt文件讀入為np.array的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 在Django同1個(gè)頁(yè)面中的多表單處理詳解

    在Django同1個(gè)頁(yè)面中的多表單處理詳解

    這篇文章主要給大家介紹了在Django同1個(gè)頁(yè)面中的多表單處理的相關(guān)資料,文章先給大家介紹了如何快速上手Django實(shí)現(xiàn)項(xiàng)目的方法,方便讓大家理解和學(xué)習(xí),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • Python3+Appium安裝使用教程

    Python3+Appium安裝使用教程

    這篇文章主要介紹了Python3+Appium安裝使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • PyTorch梯度下降反向傳播

    PyTorch梯度下降反向傳播

    這篇文章主要介紹了PyTorch反向傳播,反向傳播的目的是計(jì)算成本函數(shù)C對(duì)網(wǎng)絡(luò)中任意w或b的偏導(dǎo)數(shù),下文更多詳細(xì)內(nèi)容敘述需要的小伙伴可以參考一下
    2022-03-03
  • Python Django獲取URL中的數(shù)據(jù)詳解

    Python Django獲取URL中的數(shù)據(jù)詳解

    這篇文章主要介紹了Python Django獲取URL中的數(shù)據(jù)詳解,小編覺(jué)得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考
    2021-11-11
  • Django項(xiàng)目如何給數(shù)據(jù)庫(kù)添加約束

    Django項(xiàng)目如何給數(shù)據(jù)庫(kù)添加約束

    這篇文章主要介紹了Django項(xiàng)目如何給數(shù)據(jù)庫(kù)添加約束,幫助大家更好的理解和學(xué)習(xí)使用Django框架,感興趣的朋友可以了解下
    2021-04-04
  • python二叉樹(shù)類以及其4種遍歷方法實(shí)例

    python二叉樹(shù)類以及其4種遍歷方法實(shí)例

    二叉樹(shù)是一種特殊的樹(shù),最直觀地體現(xiàn)于它的每個(gè)節(jié)點(diǎn)至多有兩個(gè)子節(jié)點(diǎn),二叉樹(shù)是非常實(shí)用的一種數(shù)據(jù)結(jié)構(gòu),常常用于實(shí)現(xiàn)二叉查找樹(shù)及二叉堆等,下面這篇文章主要給大家介紹了關(guān)于python二叉樹(shù)類以及其4種遍歷方法的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Python3多進(jìn)程 multiprocessing 模塊實(shí)例詳解

    Python3多進(jìn)程 multiprocessing 模塊實(shí)例詳解

    這篇文章主要介紹了Python3多進(jìn)程 multiprocessing 模塊,結(jié)合實(shí)例形式詳細(xì)分析了Python3多進(jìn)程 multiprocessing 模塊的概念、原理、相關(guān)方法使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • 使用pyinstaller逆向.pyc文件

    使用pyinstaller逆向.pyc文件

    這篇文章主要介紹了使用pyinstaller逆向.pyc文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    用python處理地理位置是非常常見(jiàn)的需求,下面這篇文章主要給大家介紹了關(guān)于python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07

最新評(píng)論