2014-12-18 8 views
5

Also, ich habe über das Internet suchen und es ist so frustrierend. Wenn ich versuche zu suchen, bekomme ich Erklärungen, wie man Dateien entschlüsseln und encodieren kann. Aber das interessiert mich nicht. Ich weiß, dass das möglich ist, seit ich das konnte. Ich weiß nicht, was passiert ist. Außerdem habe ich versucht, Python neu zu installieren. Ändern der Optionen unter der Konfiguration IDLE usw. Auf meinem Laptop gibt es überhaupt keine Probleme. Ich kann dies tun:Kann nicht eingeben (č ć š ž đ) in Python 2.7.x Konsole

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

Und auf meinem PC bekomme ich:

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

ich wiederhole, ich spreche nicht über Codierung im Programm. Ich spreche über Python-Konsole, und es funktioniert auf meinem Laptop und arbeitete an meinen vorherigen Maschinen. Es muss eine Lösung für dieses Problem geben.

Auch nehmen an aussehen:

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

>>> 
+2

die Windows-Konsole nicht, dass ... Leerlauf unterstützt wird und die meisten IDE haben jedoch Konsolen, die unterstützen, dass –

+0

sicher, dass das Python 2.7 auf Ihrem Laptop? – Carsten

+1

Führen Sie Python 2 in einem und Python 3 in einem anderen? Was passiert, wenn Sie 'a = u'ç' versuchen? – Ajean

Antwort

1

Die Windows-Konsole ist dadurch begrenzt, was es darstellen kann. Sie können die Codepage mit dem alten Befehl DOS CHCP ändern.

CHCP 65001 

Dies wird die Codepage in UTF-8 ändern und die Konsole entspannter machen. Sie werden wahrscheinlich ein Quadrat anstelle des tatsächlichen Zeichens sehen, aber Sie werden zumindest keinen Fehler sehen.

+0

Das Problem ist mit der IDLE-Konsole, nicht Windows-Konsole. Dies hat keine Auswirkungen. –

+0

Die Idle-Shell kann jedes Zeichen in der Basic Multilingual-Ebene akzeptieren und anzeigen, da dies auch für tcl/tk gilt. Das ist viel besser als die Windows-Konsole. –

+0

@TerryJanReedy wahr auf dem Display Teil aber falsch auf der Annahme. –

-3

Versuchen Sie:

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

** Bitte ** nicht Cargo-Kult. Sie sollten die Python-Standardcodierung ** niemals ** ändern. es gibt einen * sehr guten Grund *, dass die Funktion aus 'sys' entfernt wird. Das Ändern der Standardcodierung ist wie das Ignorieren eines gebrochenen Beins, indem man einen Stock daran anschnallt und weitergeht, anstatt zu einem Arzt zu gehen, um den Knochen richtig zu setzen. –

+1

Dies ist abgesehen von der Tatsache, dass dies * das Problem nicht löst *. –