日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

decode,encode的用法

發布時間:2023/12/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 decode,encode的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python內部的字符串一般都是 Unicode編碼。代碼中字符串的默認編碼與代碼文件本身的編碼是一致的。所以要做一些編碼轉換通常是要以Unicode作為中間編碼進行轉換的,即先將其他編碼的字符串解碼(decode)成 Unicode,再從 Unicode編碼(encode)成另一種編碼。

  • decode?的作用是將其他編碼的字符串轉換成?Unicode?編碼,eg?name.decode(“GB2312”),表示將GB2312編碼的字符串name轉換成Unicode編碼
  • encode?的作用是將Unicode編碼轉換成其他編碼的字符串,eg?name.encode(”GB2312“),表示將unicode編碼的字符串name轉換成GB2312編碼

所以在進行編碼轉換的時候必須先知道 name 是那種編碼,然后 decode 成 Unicode 編碼,最后載 encode 成需要編碼的編碼。當然了,如果 name 已經就是 Unicode 編碼了,那么就不需要進行 decode 進行解碼轉換了,直接用 encode 就可以編碼成你所需要的編碼。值得注意的是:對 Unicode 進行編碼和對 str 進行編碼都是錯誤的。

eg:
由于內置函數 open() 打開文件時,read() 讀取的是 str,讀取后需要使用正確的編碼格式進行 decode()。write() 寫入時,如果參數是 Unicode,則需要使用你希望寫入的編碼進行 encode(),如果是其他編碼格式的 str,則需要先用該 str 的編碼進行 decode(),轉成 Unicode 后再使用寫入的編碼進行 encode()。如果直接將 Unicode 作為參數傳入 write() ,python 將先使用源代碼文件聲明的字符編碼進行編碼然后寫入。

  • # coding:?UTF-8
  • ?
  • fp1?=?open('test.txt',?'r')
  • info1?=?fp1.read()
  • # 已知是 GBK 編碼,解碼成 Unicode
  • tmp?=?info1.decode('GBK')
  • ?
  • fp2?=?open('test.txt',?'w')
  • # 編碼成 UTF-8 編碼的 str
  • info2?=?tmp.encode('UTF-8')
  • fp2.write(info2)
  • fp2.close()
  • 先知道info1是字符串,其編碼為GBK,將其解碼成unicode.存在tmp中。再將其編碼成utf-8,存在info2中。這樣寫入fp2文件中的內容就是utf-8格式的了。那么能保證fp2中的內容編碼一致,都是utf-8
  • utf-8也能顯示中文。它是可變長的編碼方式,可以使用 1~4 個字節表示一個字符,可根據不同的符號而變化字節長度。
  • python3中默認文件為utf-8格式。字符串不需使用.decode()。其作為unicode編碼。可以直接使用encode編碼為其他。
  • 獲取系統默認編碼
  • import?sys
  • print?sys.getdefaultencoding()
  • 轉載于:https://www.cnblogs.com/gwj99/p/7574918.html

    總結

    以上是生活随笔為你收集整理的decode,encode的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。