如何解決Python中文問題,python 2 7輸出中文字串出現錯誤如何解決

時間 2021-05-07 20:00:57

1樓:看過流鼻血了

python的中文問題一直是困擾新手的頭疼問題,python的發行版至今尚未包括任何中文支援模組。當然,幾乎可以確定的是,在將來的版本中,python會徹底解決此問題,不用我們這麼麻煩了。 筆者使用的是2.

5版本。python的版本可以通過呼叫sys模組的sys.version檢視。

在幾個月的學習中,主要遇到以下問題:

1. print列印中文的問題:

在編輯器中輸入一段測試**:

s=』測試』

print s

執行結果如下:

non-ascii character '\xb2' in file c:\documents and settings\administrator\桌面

//www.python.org/peps/pep-0263.

html for details: 2.py, line 1, pos 0

原因是如果檔案裡有非ascii字元,需要指定編碼宣告。把2.py檔案的編碼重新改為utf-8,並加上編碼宣告:

# -*- coding: utf-8 -*-

s=』測試』

print s

執行後可以正確列印中文。

2.中文路徑的問題。

在d盤下儲存一個名字為『中文.txt『的檔案。執行如下測試**:

# -*- coding: utf-8 -*-

f=open('d:\\中文.txt', 'r')

print f.read()

執行結果如下:

ioerror: [errno 2] no such file or directory: 'd:\\\xe4\xb8\xad\xe6\x96\x87.txt'

字串有很多的編碼,不同的系統和平臺有各自的編碼 ,為了實現系統或平臺之間的資訊互動可能需要編碼轉換。這裡只需要先使用unicode編碼一下,這樣再讀取中文路徑就不會有問題了:

複製**

# -*- coding: utf-8 -*-

path='d:\\中文.txt'

spath=unicode(path , "utf8")

f=open(spath,'r')

print f.read()

複製**

然後就可以正確顯示檔案內容

總結:所有的中文顯示問題都可以歸結為編碼問題,遇到其他類似的問題,那隻能仔細看文件,靠你的經驗,靠你多做測試。而且根據python所報出來的錯誤一般也可以判斷出來。

那麼當發現需要編碼轉換時,剩下的就是如何正確進行碼制轉換。

為了正確處理多語言文字,python在2.0版後引入了unicode字串。從那時起,python語言中的字串就分為兩種:

一種是2.0版之前就已經使用很久的傳統python字串,一種則是新的unicode字串。在python語言中,一般的解決辦法是使用unicode()內建函式對一個傳統python字串進行「解碼」,得到一個unicode字串,然後又通過unicode字串的encode()方法對這個unicode字串進行「編碼」,將其「編碼」成為傳統python字串。

2樓:小猿圈it教育

隨著學習的深入,用不了多久,你就可以寫複雜的上千甚至上萬行的**啦,有些**你花了很久寫出來,過了些天再回去看,發現竟然看不懂了,哈哈,這太正常了。 另外,你以後在工作中會發現,一個專案多是由幾個甚至幾十個開發人員一起做,你要呼叫別人寫的**,別人也要用你的,如果**不加註釋,你自己都看不懂,更別說別人了,這樣寫會捱打的。所以為了避免這種尷尬的事情發生,一定要增加你**的可讀性。

**註釋分單行和多行註釋, 單行註釋用#,多行註釋可以用三對雙引號""" """

下面給大家看一段標準**的註釋,忽略**意思

def subclass_exception(name, parents, module, attached_to=none):

"""create exception subclass. used by modelbase below.

if 'attached_to' is supplied, the exception will be created in a way that

allows it to be pickled, assuming the returned exception class will be added

as an attribute to the 'attached_to' class.

"""class_dict =

if attached_to is not none:

def __reduce__(self):

# exceptions are special - they've got state that isn't

# in self.__dict__. we assume it is all in self.args.

return (unpickle_inner_exception, (attached_to, name), self.args)

def __setstate__(self, args):

self.args = args

class_dict['__reduce__'] = __reduce__

class_dict['__setstate__'] = __setstate__

return type(name, parents, class_dict)

**註釋原則:

不用給全部**加註釋,只需要在自己覺得重要或不好理解的部分加註釋即可

註釋可以用中文或英文,但絕對不要拼音噢

註釋不光要給自己看,還要給別人看,所以請認真寫

python 2.7輸出中文字串出現錯誤如何解決

3樓:匿名使用者

由於漢字不屬於ascii編碼表中的字元,因此,無論是在python互動模式還是執行模式,很多時候都無法正常輸出中文。

那麼,怎樣才能保證每一個漢字都能有唯一一個編碼,不出現錯誤呢?

推薦涉及非ascii碼的程式使用python內建的unicode編碼型別。

一般,在字串前面加上u,即可宣告為unicode字串。

或者,根據python平臺編碼(cp936)來轉換為unicode:

unicode('你好', 'cp936')然後,就可以給每一個漢字正確編碼,正確輸出了。

如何解決jsp中url傳值的中文亂碼問題

庫虹野丹雲 編碼方式為utf 8時確實會url引數中文亂碼問題,用gb2312問題就能解決,建議樓主在做引數傳遞的時候儘量不要傳遞中文 怎麼解決jsp頁面get傳值中文亂碼問題 jsp中,超連結傳值 中文 亂碼 超連結提交資料,是以get方式提交的 加入 以下 是無效的,它是用來解決post方式的亂...

如何解決我吃醋的問題,如何解決我吃醋的問題

長得漂亮看的人多很正常,有美女難道你不喜歡看嗎 看看沒什麼又不能怎樣你吃什麼醋呢,眼睛長在別人臉上 你好 你為你的女友而吃醋是很正常的,為什麼?因為你很在乎她 並且你的獨佔慾望比較強.但是男子漢要把心放寬,不然難成大事 與此同時再想想你自身的優點,讓自己感覺不比別的男生差.如果她真心喜歡你,那你想甩...

如何解決這棘手的問題,如何解決這棘手的問題

世上無難事,只怕有心人,當你覺得某些事情讓你感到特別棘手,一定是你的開啟方式或者角度出現了問題,那我們不妨換個角度,換個方法試試,找到正確的方法,要遠遠強過你自己在那苦苦周旋,所以很多事情選擇大於努力,找對路徑比什麼都重要。我以前也覺得自己很有優勢!勸你還是不要想的好!好好學習吧!我就看不慣那幫所謂...