Как я могу декодировать объекты HTML?

Это не бесполезно.

Учтите это:

class FooException extends Exception with ControlThrowable

Это будет поймано первым блоком и переброшено, так и не достигнув второго блока. Возможно, это плохая идея - писать подобные исключения, но, когда впервые был представлен ControlThrowable (затем он назывался ControlException), это было нередко в стандартной библиотеке .

22
задан brian d foy 22 January 2010 в 19:18
поделиться

4 ответа

Смотрите на HTML:: Объекты :

use HTML::Entities;

my $html = "Snoopy & Charlie Brown";

print decode_entities($html), "\n";

можно предположить вывод.

50
ответ дан 29 November 2019 в 03:28
поделиться

Вышеупомянутые ответы говорят Вам, как декодировать объекты в строки Perl, но Вы также спросили, как изменить тех, которые в ASCII.

Предположение, что это действительно, что Вы хотите и Вы не хотите всех unicode символов, на которые можно посмотреть текст:: модуль Unidecode от CPAN для Уничтожения всех тех нечетных символов назад в примерно подобный набор символов ASCII:

use Text::Unidecode qw(unidecode);
use HTML::Entities qw(decode_entities);

my $source = '北亰';  
print unidecode(decode_entities($source));

# That prints: Bei Jing 
21
ответ дан 29 November 2019 в 03:28
поделиться

Обратите внимание, что существуют указанные шестнадцатеричными числами символы также. Они похожи на это: & #xe9; (é).

Использование HTML:: decode_entities Объектов для перевода объектов в фактические символы. Преобразовать это в ASCII требует большего количества работы. Я использовал iconv (интерфейс жемчуга: текст:: Iconv) с транслитерировать опцией на с некоторым успехом в прошлом. Но если Вы имеете дело с ограниченным набором объектов, или Вам на самом деле не нужен в уменьшенный до эквивалентов ASCII, можно быть более обеспеченным ограничением, что decode_entities производит или предоставление ему с пользовательскими картами преобразования. Посмотрите HTML:: документ Объектов.

6
ответ дан 29 November 2019 в 03:28
поделиться

Существует несколько предопределенных сущностей HTML - & " > и т. Д., Которые вы могли бы жестко кодировать.

Однако, больший случай числовых объектов - { - будет намного сложнее, так как эти значения Unicode , а преобразование в ASCII будет варьироваться от сложным ] до невозможно .

3
ответ дан 29 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: