一、Python編碼概述
在計算機世界中,編碼是指把字元轉換為二進位形式的過程,在以二進位存儲和傳輸的計算機中,所有的文字、符號、數字都需要轉換成二進位數字方可處理。
在Python中,通常使用以下編碼方式:
import sys
print(sys.getdefaultencoding())
通常情況下輸出為utf-8。因此,當我們在Python中打開一個文件時,如果不指定打開文件的編碼方式,則默認採用的是utf-8編碼。
二、Python編碼與解碼函數
Python提供了兩個非常重要的函數來處理字元串的編碼和解碼問題。
- encode():將字元串編碼為指定編碼方式
s = '我愛編程'
s_utf_8 = s.encode('utf-8')
print(s_utf_8)
print(type(s_utf_8))
s_gbk = s_utf_8.decode('utf-8')
print(s_gbk)
print(type(s_gbk))
三、Python解碼函數
Python解碼函數是將編碼數據轉換為可讀文本的重要方式之一,優秀的解碼函數可以讓我們輕鬆處理各種複雜的編碼數據。
四、Python常用解碼函數
1. base64解碼
base64是一種基於64個可列印字元來表示二進位數據的方法。由於一些網路傳輸協議或郵件傳輸形式的限制,需要把二進位數據進行編碼,這個時候base64編碼就派上用場了。Python的base64模塊提供了base64編碼和解碼的函數,使用非常方便。
import base64
#base64編碼
s = '我喜歡編程'
s_base64 = base64.b64encode(s.encode('utf-8'))
print(s_base64)
#base64解碼
s_decode = base64.b64decode(s_base64).decode('utf-8')
print(s_decode)
2. URL編碼解碼
URL編碼是一種將數據編碼為可用於URL的字元串的方式。這種編碼通常用於在HTTP請求中傳遞參數。Python的urllib.parse模塊提供了url編碼和解碼的函數。
from urllib.parse import quote, unquote
#url編碼
s = '編程'
s_urlencode = quote(s, encoding='utf-8')
print(s_urlencode)
#url解碼
s_urldecode = unquote(s_urlencode, encoding='utf-8')
print(s_urldecode)
3. Hex解碼
Hex是一種十六進位的編碼方式,它的作用是將數據存儲和傳輸時,將二進位數據轉化為十六進位的字元串。Python的binascii模塊提供了hex編碼和解碼的函數。
import binascii
s = 'Python編程'
s_hex = binascii.b2a_hex(s.encode('utf-8'))
print(s_hex)
s_unhex = binascii.a2b_hex(s_hex).decode('utf-8')
print(s_unhex)
4. Unicode解碼
Unicode是一種通用字元編碼,常用的有utf-8、utf-16和utf-32等編碼方式。Python中的unicode()函數可以將二進位數據解碼為指定編碼方式的字元串。
s = b'hello world'
s_unicode = s.decode('utf-8')
print(s_unicode)
s = '我喜歡Python'
s_byte = s.encode('utf-8')
s_unicode = s_byte.decode('utf-8')
print(s_unicode)
五、總結
Python提供了強大的編碼與解碼函數,可以幫助我們快速處理各種編碼和解碼的問題,使得我們更專註於業務邏輯的實現。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239664.html