2016-02-05 1 views
0

Я работаю над Python2.7 и захватываю японский/китайский символы со страницы. Он печатает отлично на консоли, но когда я храню в list и dict не и print(records) отображается как:Python: Не удается напечатать/сохранить символы Int'l правильно

u'portuguese «: u'sirena abisgundecheck перевод», u'japanese \ xa0 (г \ u014dmaji) ': u'm \ u0101meiru - abisugunde', u'chinese ': и' \ u6c34 \ u7cbe \ u9cde- \ u6df1 \ u6e0a \ u6208 \ u8feacheck перевод», ...

ответ

2

Python 2 печально известен для кодирования символов юникода. Рассмотрим переход на Python 3, который обрабатывает все это изначально.

Мне кажется, что данные dict = {'japanese': u'japanese\xa0(r\u014dmaji)'} персонажи появляются, как вы представили их при печати сразу (print dict), но работать лучше, если вы делаете print dict['japanese'] или первую итерацию над клавишами, а затем распечатать.

Очевидно, что формат u'xxx - это то, как строки Юникода представлены внутри Python. Затем они преобразуются в удобочитаемую форму, когда печатаются изолированно, но не тогда, когда они существуют как часть более крупной структуры.

+0

Невозможно, поскольку он используется в производстве. – Volatil3

+0

Я вижу. Мне кажется, что, учитывая 'dict = {'japanese': u'japanese \ xa0 (r \ u014dmaji) '}' символы появляются таким образом, что вы их сразу же распечатали ('print dict'), но они работают лучше если вы выполняете 'print dict ['japanese']' или перебираете ключи и печатаете. Не могли бы вы разместить еще какой-нибудь код, относящийся к вашему конкретному варианту использования? –

+0

О да, точно. Доступ к определенному ключу и печать его символа fine.'print (записи [2] ['chinese']) 'prints' 水 精 鳞 - 深渊 戈迪 'while' print (records [2]) 'yields' {u ' chinese ': u' \ u6c34 \ u7cbe \ u9cde- \ u6df1 \ u6e0a \ u6208 \ u8fea '} ' ПОЧЕМУ ЭТО ??? – Volatil3

Смежные вопросы