python中字串的編碼和解碼 - IT人

文章推薦指數: 80 %
投票人數:10人

可以通過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離線安裝教程



請為這篇文章評分?