Python的中文編碼轉換問題

2021-06-22 22:02:51 字數 970 閱讀 5339

與伺服器進行資料交換時,尤其是資料中含有中文時,要注意中文的編碼問題。要選擇伺服器接受的編碼方式,否則會造成顯示亂碼。

經驗:實驗室伺服器的資料庫,中文用utf-8編碼,但我提交的是gbk編碼的中文,結果出現亂碼:

基本能解決大陸上的編碼問題。

簡單解釋一下:

首先判斷傳入的mes是否是unicode編碼,若是,直接encode成目標編碼;

然後分別用utf-8, gbk, gb2312, gb18030, utf-16嘗試解碼,若解碼不成功,程式丟擲異常,跳到except中,進行下乙個編碼嘗試;

若解碼成功,則encode成目標編碼,函式返回;

若五個編碼方式都丟擲了異常,則丟擲異常「unknown charset」。

但該**有乙個bug,並沒有對使用者的輸入的編碼方式encoding進行過濾,若使用者誤輸入,則也會丟擲『unknown charset』異常。

參考資料:

微博: 浙大宋博

Python的中文編碼問題

基本編碼 1 當沒有給定任何編碼提示的時候,python預設使用ascii作為它的標準編碼格式。所以對於中文這樣的非asciii編碼的字元,不指定編碼格式時就會報錯。2 python裡面string型別和unicode型別是兩種不同的型別,string型別的編碼格式就是原始碼的編碼格式,而unico...

python中文編碼問題

在 python 中對中文進行處理的時候,往往涉及到編碼轉換的問題,通常使用以下三種編碼格式 utf 8 gbkunicode 國內用的比較多的是 gbk格式,unicode 是乙個很好的編碼方案,將世界各國的語言進行了統一的編碼,美國人後來覺得自己吃了大虧,於是又搞了一種變長編碼的 utf 8 的...

python中文編碼問題

為什麼會報錯 unicodeencodeerror ascii codec can t encode characters in position 0 1 ordinal not in range 128 本文就來研究一下這個問題。字串在python內部的表示是unicode 編碼,因此,在做編碼轉...