2017-10-25 1 views
0

Bitte markieren Sie meine Frage nicht als bereits beantwortet, denn in allen Fragen zu stackoverflow oder im Unicode HOWTO kann ich nicht herausfinden, wie man in Python 3 das Overline- oder U + 203E-Zeichen druckt. Kann jemand bitte erklären in Baby Programmierer Sprache, wie Unicode-Zeichen wie dieser zu drucken? Ich habe einige Dinge ausprobiert, aber um ehrlich zu sein, hatte ich keine Ahnung, was ich tat.Wie Überstreichungszeichen in Python 3 drucken?

Ich arbeite Kubuntu Xenial (16.04).

Wenn ich versuche, das Zeichen zu drucken, erhalte ich einen UnicodeEncodeError. Meine Frage wäre, wie man diesen Fehler umgehen könnte?

EDIT 1: Problem

ich jetzt meine locale haben sich heraus zu POSIX gesetzt, die ASCII-Kodierung wäre. Ich werde versuchen, es auf UTF-8-Codierung einzustellen.

EDIT 2: Immer noch keine Lösung

Ich habe herausgefunden, was ich ändern müssen, ich habe festgestellt, nur nicht aus, wie. Für jeden, der das gleiche Problem hat, gibt es einen Kommentar mit einem Link zu einem Beitrag, wo ein ähnliches Problem gelöst ist.

EDIT 3: Endgültige Antwort

Here ist ein Link zu einem askubuntu Forum, in dem ich gefragt, wie meine /etc/default/locale Datei zu bearbeiten. Stellt sich heraus, ein Befehl in der Linux-Shell war genug. Für mich funktioniert vieles nicht, aber mit diesem Befehl konnte ich mein Gebietsschema auf en_US.UTF-8: sudo /usr/sbin/update-locale LANG=en_US.UTF-8 setzen. Nach dem Neustart meines Betriebssystems hatten die Einstellungen übernommen und mein Gebietsschema wurde geändert.

Jetzt brauche ich das Überstreichungszeichen nicht mehr, weil ich gelernt habe, mit Grafikbibliotheken zu arbeiten, aber ich hatte mehrere Probleme wegen meines Gebietsschemas. Danke an alle für den Hinweis!

+1

'print ("\ u203e")'? –

+0

@ juanpa.arrivillaga, die mir einen UnicodeEncodeError gibt. Ich werde meine Frage zur Klarstellung bearbeiten –

+0

Ja, das bedeutet, dass Ihr Terminal Unicode nicht unterstützt oder Unicode-Unterstützung nicht aktiviert hat (d. H.Es ist eingestellt, Dinge mit einem anderen Codec zu decodieren.) –

Antwort

2

Verwenden Sie \u, um ein Unicode-Zeichen anzugeben: print("\u203e").

+0

Ich habe dies versucht, aber ich bekomme einen UnicodeEncodeError –

0

Sie müssen stattdessen das Kombinationszeichen U + 0304 verwenden.

print(u'a\u0304') 

à U + 0305 ist wahrscheinlich eine bessere Wahl (wie viraptor schon sagt). Sie können auch die römischen Unicode-Ziffern (U + 2160 bis U + 217f) anstelle von regulären lateinischen Großbuchstaben verwenden, obwohl sie (zumindest in meinem Terminal) nicht so gut mit der Überstreichung gerendert werden.

print(u'\u2163\u0305') 

print u'I\u0305V\u0305' 

Iv

+0

Ich möchte nur die Ebene Überschriftszeichen, ohne irgendwelche Zeichen darunter, so brauche ich \ u203e. Mein Problem ist, ich weiß nicht, wie Sie den UnicodeEncodeError –

+0

bitte beheben, zeigen Sie Code –

+0

Ich habe wirklich keinen Code. Das ist alles was ich habe: 'print (u "\ u203e")' –

0

Es ist wie Ihr sys.stdout.encoding scheint, ist 'ascii'.
Versuchen Sie es zu 'utf-8' zu setzen:

import sys, codecs 
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach()) 

print ('\u203e') 
+0

Wenn ich das versuche, ist das mein Ergebnis: –