Python中文編碼那些事

來源:互聯網
上載者:User
首先,要明白encode()和decode()的區別

encode()的作用是將Unicode編碼的字串轉換為其他編碼格式。

例如: st1.encode("utf-8") 這句話的作用是將Unicode編碼的st1編碼為utf-8編碼的字串

decode()的作用是把其他編碼格式的字串轉換成Unicode編碼的字串。

例如: st2.decode("utf-8") 這句話的作用是將utf-8編碼的字串st2解碼為Unicode編碼的字串

第二,除Unicode編碼的字串以外,任何一種編碼的字串要想轉換為其他編碼格式,必須先解碼後編碼

非Unicode編碼--> Unicode編碼-->非Unicode編碼

例如,utf-8編碼的字串st想要轉換為gbk編碼的字串,必須經過以下步驟:

st=st.decode("utf-8") #解碼為Unicode編碼

st=st.encode("gbk") #從Unicode編碼編碼為gbk編碼

第三,我們經常使用的utf-8編碼還分為有BOM的和無BOM的。

第四:關於json檔案的中文編碼。用Python讀取Json檔案時經常用到json.load()函數,該函數對json檔案的格式是有要求的

1)json檔案是utf-8 without BOM編碼的,那麼可以直接用json.load(filename)函數讀取json檔案的內容

2)json檔案是utf-8 with BOM編碼的,不能用json.load()函數讀取,json.load()不能正確識別

3)json檔案時其他編碼的,比如gbk, 要把json檔案的編碼格式作為一個參數傳給json.load():

eg. json.load(filename,"gbk")

第五,怎麼查看並且設定自己檔案的編碼呢?

介紹一個個人比較喜歡的工具"Nodtepad++",隨便一個軟體管家裡就與一鍵安裝。

用這個工具你可以方便的查看自己的檔案的當前編碼,並可以輕鬆轉換成任意其他編碼格式

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.