decode,encode的用法
python內(nèi)部的字符串一般都是 Unicode編碼。代碼中字符串的默認(rèn)編碼與代碼文件本身的編碼是一致的。所以要做一些編碼轉(zhuǎn)換通常是要以Unicode作為中間編碼進(jìn)行轉(zhuǎn)換的,即先將其他編碼的字符串解碼(decode)成 Unicode,再從 Unicode編碼(encode)成另一種編碼。
- decode?的作用是將其他編碼的字符串轉(zhuǎn)換成?Unicode?編碼,eg?name.decode(“GB2312”),表示將GB2312編碼的字符串name轉(zhuǎn)換成Unicode編碼
- encode?的作用是將Unicode編碼轉(zhuǎn)換成其他編碼的字符串,eg?name.encode(”GB2312“),表示將unicode編碼的字符串name轉(zhuǎn)換成GB2312編碼
所以在進(jìn)行編碼轉(zhuǎn)換的時(shí)候必須先知道 name 是那種編碼,然后 decode 成 Unicode 編碼,最后載 encode 成需要編碼的編碼。當(dāng)然了,如果 name 已經(jīng)就是 Unicode 編碼了,那么就不需要進(jìn)行 decode 進(jìn)行解碼轉(zhuǎn)換了,直接用 encode 就可以編碼成你所需要的編碼。值得注意的是:對 Unicode 進(jìn)行編碼和對 str 進(jìn)行編碼都是錯(cuò)誤的。
eg:
由于內(nèi)置函數(shù) open() 打開文件時(shí),read() 讀取的是 str,讀取后需要使用正確的編碼格式進(jìn)行 decode()。write() 寫入時(shí),如果參數(shù)是 Unicode,則需要使用你希望寫入的編碼進(jìn)行 encode(),如果是其他編碼格式的 str,則需要先用該 str 的編碼進(jìn)行 decode(),轉(zhuǎn)成 Unicode 后再使用寫入的編碼進(jìn)行 encode()。如果直接將 Unicode 作為參數(shù)傳入 write() ,python 將先使用源代碼文件聲明的字符編碼進(jìn)行編碼然后寫入。
例
轉(zhuǎn)載于:https://www.cnblogs.com/gwj99/p/7574918.html
總結(jié)
以上是生活随笔為你收集整理的decode,encode的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java读取ini文件工具_Java读取
- 下一篇: 机器学习(8)——回归和异常值处理(安然