python中字串的編碼和解碼 - IT人
文章推薦指數: 80 %
可以通過encode進行編碼,其中語法如下:. 對字串進行ASCII編碼(只能轉換數字,英文字母和一些符號). # 方式1: 通過bytes ...
Togglenavigation
IT人
IT人
python中字串的編碼和解碼
Dog.泰迪發表於
2020-11-29
Python
1.常用的編碼
ASCII:只能表示一些字母,數字和特殊的字元,佔一個位元組
GBK:國家簡體中文字符集和繁體字符集,相容ASCII,佔兩個位元組
Unicode:能夠表示全世界上所有的字元,Unicode有人說佔4個位元組也有人說佔2個位元組,但中文佔2個位元組
UTF-8:Unicode的壓縮版,佔1~3個位元組,其中中文佔三個位元組
2.補充:計算機表示的單位:
bit:位,計算機最小的表示單位
bytes:位元組,最小的儲存單位,1bytes=8bit,1bytes簡寫成1B
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
......
3.ASCII編碼
ASCII編碼是基於拉丁字母一套編碼,主要是顯示現代英語和其西歐語言,是最早通用的單位元組編碼系統,具體ASCII對照表如下:
在對照表中需要記住的是大寫字母A的編碼是65,小寫字母a的編碼的97即可。
在python中可以使用chr和ord方法進行轉換:
#將數字型別轉換成ASCII對應的字元
print(chr(97))#a
#將數字轉換成對應的資料
print(ord("A"))#65
#或者使用
但隨著事件的發展,ASCII編碼擴充套件到了256個字元,編碼對照表如下:
其中後128個字元稱為擴充套件ASCII碼
2.GBK和GB2312編碼
由於ASCII編碼只能由256個字元組成,然只能由1個位元組來表示中文是不可能的,因此制定了GB2312編碼,用來表示中文的對照表
4.Unicode
為了解決各個國家編碼衝突的問題,Unicode編碼就因此而生,Unicode把所有語言都統一到一套編碼裡面,就會避免衝突,產生亂碼。
Unicodeb標準在不斷髮展,最常用的是用兩個位元組表示一個字元,也有的字元是4個位元組,但是中文是佔兩個位元組。
如果統一成Unicode編碼,在儲存和傳輸上就不划算
5.UTF-8編碼
為了解決Unicode編碼儲存過大的問題,就推出了可變長編碼UTF-8,UTF-8編碼把一個Unicode字元依據不同的資料大小程式設計1~6個位元組,其中中文就佔3個位元組
6.編碼和解碼
1.編碼操作
可以通過encode進行編碼,其中語法如下:
對字串進行ASCII編碼(只能轉換數字,英文字母和一些符號)
#方式1:通過bytes方法
bytes('a','ASCII')
#方式2:通過encode方法進行
'a'.encode('ASCII')
將字串轉換成gbk編碼格式
#方式1:通過encode方法進行
print('你好'.encode('GBK'))#編碼之後的結果為:b'\xc4\xe3\xba\xc3'
#方式2:通過bytes型別
print(bytes('我愛你','GBK'))#編碼之後的結果為:b'\xce\xd2\xb0\xae\xc4\xe3'
將字串轉換成Unicode編碼格式
#方式1:通過encode方法進行
print('你好'.encode('unicode_escape'))#編碼之後的結果為:b'\\u4f60\\u597d'
#方式2:通過bytes型別
print(bytes('我愛你','unicode_escape'))#編碼之後的結果為:b'\\u6211\\u7231\\u4f60'
將字串轉換成UTF-8編碼格式
#方式1:通過encode方法進行
print('你好'.encode('utf-8'))#編碼之後的結果為:b'\xe4\xbd\xa0\xe5\xa5\xbd'
#方式2:通過bytes型別
print(bytes('我愛你','utf-8'))#編碼之後的結果為:b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
2.解碼操作
將GBK編碼格式轉換成字串
#通過decode方法解碼
print(b'\xc4\xe3\xba\xc3\xce\xd2\xb0\xae\xc4\xe3'.decode('GBK'))#解碼之後結果為:你好我愛你
將UTF-8編碼格式轉換成字串
#通過decode方法解碼
print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode('utf-8'))#解碼之後結果為:你好我愛你
將Uniconde編碼格式轉換成字串
#通過decode方法解碼
print(b'\\u4f60\\u597d\\u6211\\u7231\\u4f60'.decode('GBK'))#解碼之後結果為:你好我愛你
相關文章
Python基礎語法
2020-11-29
Python
python-包
2020-11-29
Python
字典--Python學習筆記(五)
2020-11-29
Python
Python基於Socket實現簡易多人聊天室
2020-11-29
Python
【Python篇】scrapy爬蟲
2020-11-29
Python爬蟲
機器學習演算法(22)python實現用scikit-learn進行全連線的凝聚層次聚類演算法(Agglo-merative-Clustering)
2020-11-29
PythonMachineLearning演算法
python-leetcode13羅馬數字轉整數
2020-11-29
PythonLeetCode
語言型別介紹及其Python的語言型別
2020-11-29
Python
Octave數字轉字元,連線兩個字串,以及如何將字串轉換為變數名稱
2020-11-29
Python保留字及其說明
2020-11-29
Python
計算機視覺必知-用Python將任一圖片轉換為向量矩陣image2vector
2020-11-29
Python
學Python,只有不到15%的同學會成功
2020-11-29
Python
python爬蟲學習1
2020-11-29
Python爬蟲
圖的廣度優先搜尋和深度優先搜尋Python實現
2020-11-29
Python
06_Python元組
2020-11-29
Python
初識tsfreshinPython
2020-11-29
Python
大頂堆的python實現
2020-11-29
Python
python筆記-5
2020-11-29
Python
mongodb資料庫使用03、python和mongodb的互動
2020-11-29
資料庫PythonMongoDB
最新文章
CMR:印度手機遊戲調查報告
大咖說·圖書分享|HaaS物聯網裝置雲端一體開發框架
話實踐,行實幹,成實事:“巡禮”數字化的中國大地
構建安全程式碼防止供應鏈攻擊
【推薦閱讀】超有用的漏洞掃描工具合集!
國密SM演算法有哪些?
為什麼伺服器選擇Linux系統
ApacheFlinkML2.1.0釋出公告
乾貨|作為前端開發者如何邁向獨立開發者
助力開發者,全方位解讀APISIX測試案例
得物資料庫中介軟體平臺“彩虹橋”演進之路
KubeSphere3.3.0離線安裝教程
延伸文章資訊
- 1Python字符串编码转换 - CSDN博客
字符串编码转换最早的字符串编码是ASCII码,只包括0-9的数字,A-Z和a-z的字母以及空格、制表符等其他符号共256个字符。随着信息技术的发展, ...
- 2python之分析decode、encode、unicode編碼轉換為漢字
decode函式可以將一個普通字串轉換為unicode物件。decode是將普通字串按照引數中的編碼格式進行解析,然後生成對應的unicode物件,比如在這裡我們程式碼用 ...
- 3Python encode()和decode()方法:字符串编码转换 - C语言中文网
- 4python中字串的編碼和解碼 - IT人
可以通過encode進行編碼,其中語法如下:. 對字串進行ASCII編碼(只能轉換數字,英文字母和一些符號). # 方式1: 通過bytes ...
- 5難搞的字串符 - iT 邦幫忙
字符串編碼轉換. 在python3.x 中,默認採用編碼格式為UTF-8 在python 中,有兩種常用的字符串類型,為bytes 和str。str(Unicode字符)、bytes(二進制數據)