Ich versuche, kyrillische Zeichen aus einer JSON-Datei zu lesen und dann an die Konsole mit Python 3.4.3 unter Windows auszugeben. Normaler Druck ('Russian Smth буквы') funktioniert wie vorgesehen.JSON auf der Konsole gedruckt zeigt falsche Codierung
Aber wenn ich JSON Inhalt drucke, scheint es in Windows-1251 zu drucken - "рЂѓЃЃЃєёμ Р" (obwohl meine Konsole, meine JSON-Datei und meine .py (mit Kodierung Kommentar) in UTF-8 sind).
Ich habe versucht, es neu zu Win-1251 und Konsole zu Win-1251 zu setzen, aber immer noch kein Glück.
Meine JSON (Codierte in UTF-8):
{
"русские буквы": "что-то ещё на русском",
"english letters": "и что-то на великом"
}
Mein Code Wörterbuch laden:
def load_dictionary():
global Dictionary, isFatal
try:
with open(DictionaryName) as f:
Dictionary = json.load(f)
except Exception as e:
logging.critical('Error loading dictionary: ' + str(e))
isFatal = True
return
logging.info('Dictionary was loaded successfully')
Ich versuche es auf 2 Arten (beide zeigen die Ausgabe das gleiche Kauderwelsch):
print(helper.Dictionary.get('rly'))
print(helper.Dictionary)
Ein interessantes Add-on: Ich habe das ganze russische Alphabet zu meiner JSON-Datei hinzugefügt und es scheint bei "С" Buchstaben stecken bleiben. (Fehler beim Laden des Wörterbuchs: "Charmap" -Codec kann Byte 0x81 in Position X nicht dekodieren: Zeichenkarten auf). Wenn ich diesen einen Buchstaben entferne, gibt es keine Ausnahme, aber das obige Problem bleibt bestehen.
Wir sehen, wie Sie die JSON einlegen, aber wo und wie ausgeben Sie es? – deceze
Diese Information hinzugefügt, sorry. @deceze –
Wahrscheinlich 'offen (DictionaryName, encoding =" utf8 ")' hilft – nauer