Kann nicht den Titel direkt in matplotlib erhalten: 'technologieën in °C'
gibt: technologieÃn in ÃC
mögliche Lösungen bereits versucht: u'technologieën in °C
'doens't Arbeit und auch nicht: # -*- coding: utf-8 -*-
am Anfang der Codedatei. Irgendwelche Lösungen?Unicode oder was in Matplotlib?
Antwort
Sie müssen in Unicode Text weitergeben müssen:
u'technologieën in °C'
Sie sicherstellen, dass Sie verwenden, um die # -*- coding: utf-8 -*-
Kommentar an der Spitze, und stellen Sie sicher, dass Ihr Texteditor tatsächlich ist, dass Codec. Wenn Ihr Editor die Datei als Latin-1-kodierten Text speichert, verwenden Sie diesen Codec in der Kopfzeile usw. Der Kommentar teilt Python mit, wie er Ihre Quelldatei interpretiert, besonders wenn es um das Parsen von String-Literalen geht.
Alternativ verwenden Escape-Codes für alles Nicht-ASCII in Ihrer Unicode-Literale:
u'technologie\u00ebn in \u00b0C'
und vermeidet die Frage, was Codec in erster Linie zu verwenden.
Ich fordere Sie zu lesen:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) von Joel Spolsky
Pragmatic Unicode von Ned Batchelder
bevor Sie fortfahren.
Die einzige Lösung, die funktioniert, ist diese: u'technologie \ u00eBN in \ u00b0C '. # - * - Codierung: utf-8 - * - in Kombination mit u'technologieën in ° C 'funktioniert nicht. – Jomme
Dann verwendet die Codierung, die Ihr Texteditor verwendet, * nicht * den Codec, den Sie oben im Kommentar angegeben haben. Wenn Ihr Editor die aktuelle Windows-Codepage verwendet, ändern Sie ihn zum Beispiel in 'cp1252' (Windows Latin 1-Variante) anstelle von UTF8. Da Ihr Text Niederländisch ist (hoi!), Wäre das meine erste Vermutung. –
# -- coding: cp1252 --funktioniert nicht. Ich arbeite mit Spyder. – Jomme
In Python3 müssen Sie sich nicht um all die problematischen UTF-8-Probleme kümmern.
Eine Anmerkung, dass Sie vor dem Plotten eine Unicode-Schriftart festlegen müssen.
matplotlib.rc('font', family='Arial')
funktioniert gut für mich: http://ideone.com/nhrP0m –
@AshwiniChaudhary: Das ist, weil Sie in die richtige Codierung für die IDEOne.com Ausgabecodierung Glück und eingefügt habe. Oder Ihre Terminalcodierung. Aber eine Terminal- oder IDEOne.com-Seitencodierung ist nicht dasselbe wie eine matplotlib-generierte Ausgabe. –