亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中出現中文亂碼如何解決

發布時間:2021-07-05 16:56:22 來源:億速云 閱讀:1305 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關Python中出現中文亂碼如何解決,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Python 中文亂碼中提到unicode,一般指的是unicode對象,例如'哈哈'的unicode對象為而str,是一個字節數組,這個字節數組表示的是對unicode對象編碼(可以是utf-8、gbk、cp936、GB2312)后的存儲的格式。這里它僅僅是一個字節流,沒有其它的含義,如果你想使這個字節流顯示的內容有意義,就必須用正確的編碼格式,解碼顯示。

例如:

Python中出現中文亂碼如何解決

對于unicode對象哈哈進行編碼,編碼成一個utf-8編碼的str-s_utf8,s_utf8就是是一個字節數組,存放的就是'\xe5\x93\x88\xe5\x93\x88',但是這僅僅是一個字節數組,如果你想將它通過print語句輸出成哈哈,那你就失望了,為什么呢?

因為print語句它的實現是將要輸出的內容傳送了操作系統,操作系統會根據系統的編碼對輸入的字節流進行編碼,這就解釋了為什么utf-8格式的字符串“哈哈”,輸出的是“鍝堝搱”。

因為 '\xe5\x93\x88\xe5\x93\x88'用GB2312去解釋,其顯示的出來就是“鍝堝搱”。這里再強調一下,str記錄的是字節數組,只是某種編碼的存儲格式,至于輸出到文件或是打印出來是什么格式,完全取決于其解碼的編碼將它解碼成什么樣子。

這里再對print進行一點補充說明:當將一個unicode對象傳給print時,在內部會將該unicode對象進行一次轉換,轉換成本地的默認編碼(這僅是個人猜測) str和unicode對象的轉換,通過encode和decode實現,具體使用如下:

Python中出現中文亂碼如何解決

將GBK'哈哈'轉換成unicode,然后再轉換成UTF8 后就可以轉換成功,為什么呢?在python中str和unicode在編碼和解碼過程中。如果將一個str直接編碼成另一種編碼,會先把str解碼成unicode,采用的編碼為默認編碼,一般默認編碼是 ansci i,所以在上面示例代碼中***次轉換的時候會出錯,當設定當前默認編碼為'gbk'后,就不會出錯了。

在***節已經說過,Python 中文亂碼中的字符串,只是一個字節數組,所以當把a情況的str輸出到gbk編碼的控制臺時,就將顯示為亂碼:鍝堝搱;而當把b情況下的str輸出utf-8編碼的控制臺時,也將顯示亂碼的問題,是什么也沒有,也許'\xb9\xfe\xb9\xfe'用utf-8解碼顯示,就是空白吧至于reload(sys)是因為 Python2.5 初始化后會刪除 sys.setdefaultencoding 這個方法,我們需要重新載入 。

看完上述內容,你們對Python中出現中文亂碼如何解決有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太白县| 黎平县| 枝江市| 叶城县| 青铜峡市| 西乡县| 海南省| 三台县| 庆安县| 西乌| 江都市| 凤山县| 论坛| 密山市| 建始县| 景洪市| 榆树市| 卢湾区| 都昌县| 新竹县| 河北区| 循化| 昌图县| 济源市| 东兰县| 宣威市| 玛纳斯县| 黎平县| 利川市| 如东县| 嘉兴市| 花莲市| 靖安县| 武安市| 佛冈县| 九江市| 宽城| 陈巴尔虎旗| 刚察县| 宁津县| 广南县|