python寫入中文亂碼
1. python命令行輸入中文亂碼怎麼辦
python2.X,代碼中指定了UTF-8,但是在cmd命令行窗口時,列印的中文仍然會亂碼。
在python3不存在該問題
運行結果:
原因
中文windows默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
相關推薦:《Python基礎教程》
解決方法
有如下兩種方法可以解決這個問題
方法一
我們可以通過先把中文解碼為unicode,然後再轉化為gbk來解決這個問題:
修改後運行結果:
方法二
當然,我們也可以通過改變cmd命令行窗口的輸出格式來解決這個問題:
·chcp 65001 就是換成UTF-8代碼頁
·chcp 936 可以換回默認的GBK
但是這樣就降低了腳本的兼容性,在其他環境運行的時候可能還會出現這樣的錯誤,而且可能會影響其他腳本運行,所以推薦使用第一種方法。
2. python 向sql Server2008插入中文數據亂碼
1、中文亂碼問題:
(1)、文件頭加上#
-*-
coding:utf-8
-*-
或者
#coding=utf8
(2)、pymssql.connect連接串中charset是要跟你資料庫的編碼一樣,如果是資料庫是gb2312
,則寫charset='gb2312'。
(3)、讀取數據時需要decode('utf-8'),寫入數據時需要encode('utf-8'),這樣就可以避免中文亂碼或報錯問題。
做個搬運工,轉載自網頁鏈接,我用方法2搞定了漢字查詢輸出。
3. python中的中文亂碼問題
你的運行環境應該是Windows的cmd下吧
#!/usr/bin/python
#coding:utf-8
os_char='gb18030'
printu"直接列印Unicode"
printu"Unicode轉換成GB18030".encode(os_char)
print"UTF-8中文轉換到GB18030,然後再列印".decode("utf-8").encode(os_char)
4. python log中文亂碼
Python log出現中文亂碼的解決方法:修改「handle」的「encode」參數為「utf-8」,即在源碼中修改「encoding='utf-8'」。
python log寫入中文亂碼,直接修改handle的encode參數為utf-8
即在源碼中修改encoding='utf-8',因為 logging.basicConfig() 配置時實際上是用到了4大組件,只不過給了默認值,在loging.FileHandler()方法中默認是這樣的。
只需在源碼中修改。
推薦課程:零基礎入門學習Python(小甲魚)
5. python中文顯示亂碼,已經在開頭有了coding: utf-8
亂碼原因:
因為你的文件聲明為 utf-8,並且也應該是用 utf-8 的編碼保存的源文件。但是 windows 的本地默認編碼是 cp936,也就是 gbk 編碼,所以在控制台直接列印 utf-8 的字元串當然是亂碼了。
解決方法:
py文件用記事本打開,另存為utf-8格式即可
6. python print中文亂碼問題 win10 Python2
python2字元串編碼的問題,如果要輸出中文可以使用u前綴,這樣就可以直接使用了
a=u'你好'
printa
這樣就可以了
7. python 中文亂碼問題
記事本是用utf-8保存你下載了東西的。你下載下來的不是utf-8,保存下來中文當然就亂碼了。而gbk和utf-8里英文的編碼值都一樣,所以不受影響。
一個方法是你留意下目標頁面的charset 和 contentType,另一個方法是你復制一個目標頁面的字,放cmd里看它的編碼長度,以此來判斷它的原來編碼。
8. python用xlwt向xls中寫入中文,顯示亂碼該怎麼解決
亂碼是編碼問題,微軟的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方法為字元串的方法,不能應用與列表等其他類型的數據上