2014-12-18 60 views
5

所以,我搜索互聯網低谷,它是如此令人沮喪。當我嘗試搜索時,我會解釋如何對Unicode文件進行解碼和編碼。但我對此不感興趣。我知道這是可能的,因爲我能夠做到這一點。我不知道發生了什麼事。另外,我試過重新安裝python。更改配置IDLE下的選項等。在我的筆記本電腦上根本沒有問題。我可以這樣做:無法輸入(C(C S)žDJ)在Python 2.7.x控制檯

>> a = 'ć' 
>> 
>> print a 
>> ć 

而且我的電腦上我得到:

>> a = 'ć' 
>> Unsupported characters in input 

我再說一遍,我不是在談論的程序編碼。我在談論Python控制檯,它在我的筆記本電腦上工作,並在我以前的機器上工作。這是一個解決這個問題的方法。

另外,還要看看這個:

>>> a = u'ç' 
>>> a 
u'\xe7' 
>>> print a 
ç 
>>> a = u'ć' 
Unsupported characters in input 

>>> 
+2

Windows控制檯不支持......空閒並和大多數的IDE都不過有支持 – 2014-12-18 22:47:24

+0

肯定這是Python 2.7版在筆記本電腦上的控制檯? – Carsten 2014-12-18 22:47:59

+1

你是在一個運行Python 2而在另一個運行Python 3嗎?當你嘗試'a =u'ç''時會發生什麼? – Ajean 2014-12-18 22:48:53

回答

1

Windows控制檯是什麼可以顯示的限制。您可以使用舊的DOS CHCP命令更改代碼頁。

CHCP 65001 

這會將代碼頁更改爲UTF-8,並使控制檯更放鬆。你可能會看到一個正方形而不是實際的字符,但至少你不會看到錯誤。

+0

問題出在空閒控制檯上,而不是Windows控制檯上。這將不起作用。 – 2014-12-18 23:58:34

+0

空閒外殼可以接受和顯示基本多語言平面中的任何字符,因爲tcl/tk也是如此。這比Windows控制檯好得多。 – 2014-12-19 16:21:05

+0

@TerryJanReedy在顯示部分爲true,但在接受部分爲false。 – 2014-12-20 06:05:06

-3

嘗試:

import sys 
reload(sys) 
sys.setdefaultencoding('utf-8') 
... 
+6

**請**不要貨物邪教。你應該從不**改變Python的默認編碼;有一個*非常好的理由*該函數從'sys'中移除。改變默認的編碼方式就像忽略了將一根棍子綁在它上面並繼續走路而不是去醫生那裏正確設置骨頭來打斷你的腿。 – 2014-12-18 22:58:42

+1

這是除了這樣做的事實,*這並不能解決手頭的問題*。 – 2014-12-18 23:00:37