Я пытаюсь читать кириллические символы из некоторого файла JSON, а затем выводить его на консоль с помощью Python 3.4.3 на Windows. Нормальная печать («Русский smth буквы») работает по назначению.JSON, напечатанный на консоль, показывает неправильную кодировку
Но когда я печатаю содержимое JSON, оно, кажется, печатает в Windows-1251 - «СЂСѓСЃСЃРєРёРμ Р ± СѓРєРІС <" (хотя моя консоль, мой JSON-файл и мой .py (с комментарием) находятся в UTF-8).
Я попытался перекодировать его на Win-1251 и настроить консоль на Win-1251, но все равно не повезло.
Моя JSON (закодированные в UTF-8):
{
"русские буквы": "что-то ещё на русском",
"english letters": "и что-то на великом"
}
Мой код для загрузки словаря:
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')
Я пытаюсь вывести его в 2 способами (как показывают та же тарабарщина):
print(helper.Dictionary.get('rly'))
print(helper.Dictionary)
Интересное дополнение: я добавил весь русский алфавит в свой файл JSON и, кажется, застрял в письме «С с». (Ошибка загрузки словаря: кодек «charmap» не может декодировать байт 0x81 в позиции X: символьные карты в). Если я удалю эту одну букву, она не станет исключением, но проблема выше.
Мы видим, как вы загружаете в JSON, но где и как вы его вывода? – deceze
Добавил эту информацию, извините. @deceze –
Вероятно, 'open (DictionaryName, encoding =" utf8 ")' помогает – nauer