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

溫馨提示×

溫馨提示×

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

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

python的字符轉換常見bug

發布時間:2020-07-30 10:32:11 來源:網絡 閱讀:2289 作者:小止1995 欄目:建站服務器

1.python把一個unicode字符串寫入文件為什么會報錯?

write方法的參數類型是str,str是二進制流(不包含編碼信息),當你給出一個unicode對象時,會執行str函數轉換成str類型再送給write方法。unicode轉str包含一次編碼,如不指定則默認使用ascii編碼,而ascii編碼集里漢字字符是沒有對應的,所以報錯。

正確做法是在代碼里指定編碼。比如在open里指定(fp= open('test.txt', 'w', encoding='utf-8')),或者在write的時候手動把unicode對象通過encode方法指定編碼產生str。就是說寫成fp.write(s.encode('utf8'))。注意unicode對象用encode是有意義的,str對象在py2里允許你對str對象使用encode,然而這是對指定了default encoding的情況下才有效的,因此不推薦新手對str直接encode。

2.Error:UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multibyte sequence

原來出現’gbk’ codec can’t encode”的錯誤的根本原因是,對于前面的,不論是用

titleHtml.decode(“UTF-8”);

還是titleHtml.decode(“UTF-8”, ‘ignore’);

還是titleHtml.decode(“UTF-8”, ‘replace’);

都是可以得到正常的titleUni的Unicode字符的,然后對于此Unicode的字符,需要print出來的話,由于本地系統是Win7中的cmd,默認codepage是CP936,即GBK的編碼,所以需要先將上述的Unicode的titleUni先編碼為GBK,然后再在cmd中顯示出來,然后由于titleUni中包含一些GBK中無法顯示的字符,導致此時提示“’gbk’ codec can’t encode”的錯誤的。


對于此(類)問題:

(1)出現UnicodeEncodeError –> 說明是Unicode編碼時候的問題;

(2) ‘gbk’ codec can’t encode character –> 說明是將Unicode字符編碼為GBK時候出現的問題;

此時,往往最大的可能就是,本身Unicode類型的字符中,包含了一些無法轉換為GBK編碼的一些字符。


解決辦法是:

方案1:

在對unicode字符編碼時,添加ignore參數,忽略無法無法編碼的字符,這樣就可以正常編碼為GBK了。

對應代碼為:

gbkTypeStr = unicodeTypeStr.encode(“GBK“, ‘ignore’);


方案2:

或者,將其轉換為GBK編碼的超集GB18030 (即,GBK是GB18030的子集):

gb18030TypeStr = unicodeTypeStr.encode(“GB18030“);

對應的得到的字符是GB18030的編碼。

向AI問一下細節

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

AI

景泰县| 屏边| 博客| 额尔古纳市| 东丽区| 高邑县| 科技| 云南省| 忻城县| 巩义市| 凤阳县| 佛坪县| 屏东县| 长泰县| 淳安县| 大渡口区| 彝良县| 商洛市| 中卫市| 营口市| 涞源县| 军事| 天柱县| 来宾市| 吉首市| 永城市| 大安市| 柳林县| 门头沟区| 区。| 滕州市| 房山区| 屏南县| 昌宁县| 东港市| 鹤山市| 公主岭市| 蓬溪县| 奉贤区| 平利县| 黄山市|