Как просмотреть ползущую unicoded арабскую строку? - PullRequest
1 голос
/ 28 апреля 2011

Я просканировал некоторые веб-страницы, используя Python. Я сорвал теги html и сохранил только часть содержимого этих страниц как repr (s). Большинство из этих страниц не на английском языке. Теперь, как я могу просмотреть просканированное содержимое на языке оригинала?

Например, сканер записал только одну строку арабского текста в текстовый файл: и '\ u0639 \ u0644 \ u0649'

Но когда я открываю текстовый файл в текстовом редакторе или браузере, он выглядит точно так же, как и выше, поэтому он в основном не читается человеком ..

Есть ли какой-нибудь простой способ визуализации и отображения строки на арабском языке?

Спасибо

Ответы [ 5 ]

1 голос
/ 28 апреля 2011

Вы не получаете читаемый человеком код, потому что вы использовали repr (s) для записи строки в файл - и это то, что должен генерировать repr - читаемое программистом представление, которое не полностью читаемо человеком.

Если вы хотите сохранить текст в формате, читаемом любым (поддерживающим Unicode) текстовым редактором и браузером, вы должны сохранить его в кодировке UTF-8:

import codecs

s = u'\u0639\u0644\u0649'
f = codecs.open('output.txt', 'w', 'utf-8')
f.write(s)
f.close()

Makeубедитесь, что в браузере или редакторе задана кодировка UTF-8, если она не распознается автоматически.

1 голос
/ 28 апреля 2011
>>> x= u'\u0639\u0644\u0649'
>>> open('x.html','w').write(x.encode('ascii','xmlcharrefreplace'))

Откройте x.html в браузере, и он должен отображаться правильно. Актуальное содержание:

على
0 голосов
/ 28 апреля 2011

Как и предполагали другие, неплохо было бы просмотреть файл в браузере.

  • Храните его в utf-8 (например, open('x.html','w').write(x.encode('utf-8'))), так как большинство браузеров хорошо оснащены для обработки utf-8.
  • В браузере вам может потребоваться изменить Вид-> Кодировка символов на Utf-8.
  • Вам понадобятся арабские шрифты на вашем компьютере, поэтому браузер может использовать их для отображения символов.

Написав это, любой просмотрщик / редактор файлов, способный декодировать utf-8 и имеющий доступ к шрифтам, может сделать это за вас (например, vim отлично работает на моей машине).

0 голосов
/ 28 апреля 2011
>>> print u'\u0639\u0644\u0649'
على
0 голосов
/ 28 апреля 2011
>>> print ast.literal_eval("u'\u0639\u0644\u0649'")
على

Ну, не порядок, показанный в браузере, а что угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...