91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

沭阳县| 铜山县| 佛教| 佛学| 西乡县| 尼勒克县| 自贡市| 扶余县| 太湖县| 丽江市| 聊城市| 阿坝县| 咸丰县| 盐池县| 宝山区| 益阳市| 同德县| 津南区| 泗阳县| 泉州市| 长泰县| 南召县| 郯城县| 新郑市| 新建县| 即墨市| 二连浩特市| 宜春市| 古交市| 台湾省| 读书| 类乌齐县| 西充县| 沈阳市| 三穗县| 嘉善县| 礼泉县| 文成县| 宜州市| 新河县| 绥中县|