執(zhí)行python腳本出現亂碼的解決方法:首先把中文解碼為unicode,具體方法如:【decode('utf-8')】;然后再轉化為gbk即可,具體方法如:【encode('gbk')】。
創(chuàng)新互聯建站-專業(yè)網站定制、快速模板網站建設、高性價比長清網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式長清網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋長清地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
問題:
代碼中指定了UTF-8編碼,但是在cmd命令行窗口時打印的中文仍然會亂碼。
(推薦教程:Python入門教程)
原因:
windows下中文默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
解決方法:
可以先把中文解碼為unicode,然后再轉化為gbk來解決這個問題。
舉例:
運行結果:
首先變量最好別命名成str,因為有str這個函數,我就假設你用的是str0了
對于你的問題,應該是編碼的問題,和split沒有關系,你可以直接print str0看看。要解決問題,就是進行轉碼:str0=str0.decode("utf-8").encode("gbk"),然后進行str1=str0.split(),
在將 Python 代碼轉換為 Java 代碼時,如果出現中文亂碼問題,可以考慮以下方法解決:
在 Python 代碼中使用 Unicode 編碼,并在 Java 代碼中設置字符集為 "UTF-8"。
使用 Python 的字符串轉碼函數,如 .encode('utf-8') ,將字符串轉換為 UTF-8 編碼。
使用 Java 的字符串轉碼函數,如 new String(string.getBytes("ISO-8859-1"), "UTF-8") ,將字符串轉換為 UTF-8 編碼。
使用 Jython 中的 sys 模塊,設置系統(tǒng)默認編碼為 UTF-8 。
設置環(huán)境變量,在命令行中輸入 export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
這些方法中的任意一種都可能有助于解決中文亂碼問題,但是具體解決方案取決于應用程序的具體情況。
這個字符串是utf8的。
上網找如何從utf8轉到多字節(jié)編碼。
或者使用我提供的思路:
windows下有一個api叫做MultiByteToWideChar,可以從一種編碼轉到UCS2編碼
還有一個api叫做WideCharToMultiByte,可以從UCS2編碼轉到一種編碼
于是你用這兩個函數,前者把utf8轉到UCS2,后者從UCS2轉到多字節(jié)編碼(這里的“多字節(jié)編碼”你需要CP_ACP或者932
用atl的話可以這樣:
char a[100];
strcpy(a, CW2A(CA2WEX(s, CP_UTF8)));
頭文件:
atlbase.h
atlconv.h
python 3和2很大區(qū)別就是python本身改為默認用unicode編碼。
字符串不再區(qū)分"abc"和u"abc", 字符串"abc"默認就是unicode,不再代表本地編碼、
由于有這種內部編碼,像c#和java類似,再沒有必要在語言環(huán)境內做類似設置編碼,比如“sys.setdefaultencoding”;
也因此也python 3的代碼和包管理上打破了和2.x的兼容。2.x的擴展包要適應這種情況改寫。
另一個問題是語言環(huán)境內只有unicode怎么輸出gbk之類的本地編碼。
答按慣例都在(序列化)輸出時才轉換成本地編碼。
比如
file.write("GBK的中文".encode("GBK"))
python環(huán)境內字符串用str.encode("GBK")方法輸出成字節(jié)串用于和其他環(huán)境交流。
亂碼是編碼問題,微軟的excel默認打開的編碼是gbk,如果你寫入的數據是非gbk編碼的,那么使用微軟excel打開就會出現亂碼的情況。解決方法為:對要寫入的數據編碼為gbk之后在進行寫入,在python中的簡單的操作方法如下:
1.源數據為unicode編碼,則直接使用encode("gbk")即可轉換編碼;
str?=?u"我愛中國共產黨"??#?unicode編碼的字符串
des_str?=?str.encode("gbk")??#轉換為gbk編碼
2.源數據不是unicode編碼,那么必須先使用decode函數解碼為unicode編碼,在按照第一種情況轉換為gbk編碼。
str?=?u"我愛中國共產黨"??#?unicode編碼的字符串
src_str?=?str.encode("utf-8")??#?源數據格式utf-8
des_str?=?str.decode("utf-8").encode("gbk")??#轉換為gbk編碼
注意:encode和decode方法為字符串的方法,不能應用與列表等其他類型的數據上
分享標題:python防止亂碼函數 python中文亂碼解決
標題URL:http://m.kartarina.com/article40/dodedho.html
成都網站建設公司_創(chuàng)新互聯,為您提供軟件開發(fā)、網站制作、企業(yè)網站制作、標簽優(yōu)化、外貿網站建設、網站內鏈
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯