2016-10-09 5 views
-1

У меня есть какие-то сообщения в facebook, в которых есть смесь английского и неанглийского языка (точнее, кхмера).Как отобразить неанглийский язык, полученный через Facebook API

Вот как отображается неанглийский текст, когда я печатаю данные на экране или сохраняю их в файле: \ u178a \ u17c2 \ u179b \ u1787 \ u17b6 \ u17a2 \ u17d2. Я предпочел бы это показать, как ឈឹ ម បញ្ចពណ៌ (Примечание: это не перевод предыдущего Юникода.)

+1

Какой Python версии и какая ОС? Как вы получаете данные из facebook? Вы расшифровываете его с utf-8? – tdelaney

+0

2.7.9, Mac. Нет, я не расшифровываю его из utf-8. Когда я пытаюсь, я получаю сообщение об ошибке: кодек ascii не может декодировать байт 0xc3 в позиции 268: порядковый не в диапазоне (128) – lars

+1

Можете ли вы добавить свой ввод, когда пытались написать файл? – estebanpdl

ответ

1

Это должно быть это:

print(u'\u1787\u17b6\u17a2\u17d2') #python3 
print u'\u1787\u17b6\u17a2\u17d2' #python2.7 

Выход: ជា អ ្

0

В PyCharm я добавил :

  1. (вверху) # - - кодирования: UTF-8 - -

  2. импорт SYS перезарядка (SYS) sys.setdefaultencoding ('utf8')

  3. s = json.dumps (сообщений [ 'данные'], ensure_ascii = False)
  4. json_file.write (s.decode ('UTF-8'))
2

Попробуйте это, если вы хотите, чтобы сохранить данные в файле:

import codecs 

string = 'ឈឹម បញ្ចពណ៌' 
with codecs.open('yourfile', 'w', encoding='utf-8') as f: 
    f.write(string)