Как просмотреть ползущую unicoded арабскую строку?

1

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

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

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

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

Спасибо,

  • 0
    Как вы написали текст в файл?
Теги:
web-crawler
unicode

5 ответов

1
Лучший ответ
>>> x= u'\u0639\u0644\u0649'
>>> open('x.html','w').write(x.encode('ascii','xmlcharrefreplace'))

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

على
  • 0
    Спасибо вам большое! Это работает!
1

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

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

import codecs

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

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

0

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

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

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

0
>>> print u'\u0639\u0644\u0649'
على
0
>>> print ast.literal_eval("u'\u0639\u0644\u0649'")
على

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

  • 0
    Спасибо! Можно ли в любом случае преобразовать строку обратно в HTML, чтобы я мог просмотреть ее в браузере?
  • 0
    docs.python.org/library/codecs.html#codecs.open

Ещё вопросы

Сообщество Overcoder
Наверх
Меню