當前位置:首頁 » 編程語言 » python返回亂碼

python返回亂碼

發布時間: 2022-03-31 18:56:28

python查mysql資料庫 返回結果的中文亂碼

這個不是亂碼,這是 unicode 字元串在內存中的形式,python 在命令行界面輸出的數據,如果不是ASCII碼,則會以十六進制形式輸出。需要輸出看見中文的話,代碼如下。


#利用第三方庫uniout,如果沒有就安裝:pipinstalluniout

importuniout
listnine=['梨','橘子','蘋果','香蕉']
printlistnine

㈡ python window 命令行返回結果亂碼怎麼解決

解決方法如下:
print u"你好".encode("GBK")
默認的終端編碼是和系統編碼一致的,這時就需要encode為對應的編碼來顯示。

㈢ python中文亂碼解決

windows下的文件路徑,cmd窗口等默認編碼都是gbk
但在windows下編寫python程序的時候,我們一般採用的編碼是utf-8
二者不一致是導致亂碼的根本原因!
在pycharm下,為了中文不亂碼,那麼需要注意一下幾個方面:
一、每一個源程序文件頭部,需要加上
#-*-coding:utf-8;-*-
這樣就沒有亂碼了

㈣ python編程 中文 出現亂碼問題

這是因為IDLE中使用gbk編碼,是ascii擴展字元集。

>>>importsys
>>>sys.getdefaultencoding()
'ascii'

解決方法:

在IDLE中執行的時候

  1. 去掉字元串前面的u字元,也不要加#coding這一行。

  2. 先import sys,然後reload(sys),再使用sys.setdefaultencoding("utf-8")。然後就可以列印前面帶u的字元串了。(這是搜來的方法,實驗了一下,發現在我這沒有輸出了。。重啟了IDLE,才可以輸出,不過又變會ascii了)

在文件中執行

在文件開頭聲明#coding行,文件保存為utf8編碼,在字元串開頭加u

㈤ python 中文亂碼問題

記事本是用utf-8保存你下載了東西的。你下載下來的不是utf-8,保存下來中文當然就亂碼了。而gbk和utf-8里英文的編碼值都一樣,所以不受影響。

一個方法是你留意下目標頁面的charset 和 contentType,另一個方法是你復制一個目標頁面的字,放cmd里看它的編碼長度,以此來判斷它的原來編碼。

㈥ python輸出部分亂碼


#-*-coding:UTF-8-*-
importsys

reload(sys)
print(sys.getdefaultencoding())#查看默認編碼,我的是ascii
sys.setdefaultencoding('utf8')
print(sys.getdefaultencoding())#已經轉為utf8了,應該沒問題了

str=input('請輸入:')#如果是python2建議用raw_input()
print'你輸入的內容是:',str

㈦ python 如何將亂碼轉成漢字

1、python2與python3稍微有點區別
2、python2中默認的字元編碼格式都是unicode,在字元串前加'u',表示unicode 編碼
3、將unicode轉換成中文,只需要用deconde解碼就可以了
>>> u='歡迎'>>> e=u.encode()>>> eb'\xe6\xac\xa2\xe8\xbf\x8e'>>> e.decode()#python3中默認就是utf-8編碼'歡迎'>>> e.decode('gbk')#如果解碼為gbk就是亂碼'嬈四繋'

python2編碼環境比較復雜,在這里不做詳細說明

㈧ python3 中文輸出亂碼問題

python 3和2很大區別就是python本身改為默認用unicode編碼。
字元串不再區分"abc"和u"abc", 字元串"abc"默認就是unicode,不再代表本地編碼、
由於有這種內部編碼,像c#和java類似,再沒有必要在語言環境內做類似設置編碼,比如「sys.setdefaultencoding」;
也因此也python 3的代碼和包管理上打破了和2.x的兼容。2.x的擴展包要適應這種情況改寫。

另一個問題是語言環境內只有unicode怎麼輸出gbk之類的本地編碼。

答按慣例都在(序列化)輸出時才轉換成本地編碼。
比如

file.write("GBK的中文".encode("GBK"))

python環境內字元串用str.encode("GBK")方法輸出成位元組串用於和其他環境交流。

㈨ python輸出到文件亂碼如何解決

python代碼文件的編碼
py文件默認是ASCII編碼,中文在顯示時會做一個ASCII到系統默認編碼的轉換,這時就會出錯:SyntaxError: Non-ASCII character。需要在代碼文件的第一行或第二行添加編碼指示:
1 # coding=utf-8 ##以utf-8編碼儲存中文字元
2 print '中文'
像上面那樣直接輸入的字元串是按照代碼文件的編碼來處理的,如果用unicode編碼,有以下三種方式:
1 s1 = u'中文' #u表示用unicode編碼方式儲存信息
2 s2 = unicode('中文','gbk')
unicode是一個內置函數,第二個參數指示源字元串的編碼格式。
decode是任何字元串具有的方法,將字元串轉換成unicode格式,參數指示源字元串的編碼格式。
encode也是任何字元串具有的方法,將字元串轉換成參數指定的格式。
(2)、字元串的編碼
用 u'漢字' 構造出來的是unicode類型,不用的話構造出來是str類型
str的編碼是與系統環境相關的,一般就是sys.getfilesystemencoding()得到的值
所以從unicode轉str,要用encode方法
從str轉unicode,所以要用decode
例如:
# coding=utf-8 #默認編碼格式為utf-8
s = u'中文' #unicode編碼的文字
print s.encode('utf-8') #轉換成utf-8格式輸出
但當python中間處理非ASCII編碼時,經常會出現如下錯誤:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的數字,python在默認的情況下認為語言的編碼是ascii編碼,所以無法處理其他編碼,需要設置python的默認編碼為所需要的編碼。
一個解決的方案是在代碼中添加:
import sys
reload(sys)
sys.setdefaultencoding('utf-8') (其中utf-8為你想輸出的字元編碼)
解釋:
sys.setdefaultencoding方法在python導入site.py後就刪除了(具體代碼查看site.py就可以看到)因此如果想用的話可以再重新load進入
總結:
u=u'unicode編碼文字'
g=u.encode('gbk') #轉換為gbk格式
print g #此時為亂碼,因為當前環境為utf-8,gbk編碼文字為亂碼
str=g.decode('gbk').encode('utf-8') #以gbk編碼格式讀取g(因為他就是gbk編碼的,需要事先知道它是GBK編碼)並轉換為utf-8格式輸出
print str #正常顯示中文(同文件輸出)
安全的方法:
s.decode('gbk','ignore').encode('utf-8′) #以gbk編碼讀取(當然是讀取gbk編碼格式的文字了)並忽略錯誤的編碼,轉換成utf-8編碼輸出。
推薦學習《Python教程》!

熱點內容
安卓微信拍了拍怎麼改 發布:2025-01-17 05:57:31 瀏覽:46
BMF伺服器的系統服務怎麼關 發布:2025-01-17 05:50:29 瀏覽:876
免刷安卓系統怎麼進入usb調試 發布:2025-01-17 05:48:21 瀏覽:837
資料庫的三層架構 發布:2025-01-17 05:17:36 瀏覽:149
雲頂之弈有人開腳本怎麼舉報 發布:2025-01-17 05:16:59 瀏覽:682
sql包含數字 發布:2025-01-17 05:11:56 瀏覽:292
密碼忘記了怎麼查看 發布:2025-01-17 05:02:30 瀏覽:682
腳本執行sql語句 發布:2025-01-17 04:47:51 瀏覽:702
結構體訪問成員變數 發布:2025-01-17 04:32:09 瀏覽:31
熱點緩存 發布:2025-01-17 04:30:07 瀏覽:523