У меня есть строка, где специальные символы, такие как !
или "
или &
или #
или @
... может появиться. Каким образом можно преобразовать в строкузакодировать специальный символ в HTML сущностей в Perl
str = " Hello "XYZ" this 'is' a test & so *n @."
автоматически каждые специальные символы их HTML сущностей, так что я получаю это:
str = " Hello " ;XYZ" ; this ' ;is' ; a test & ; so on @"
Я попытался
$str=HTML::Entities::encode_entities($str);
но это частичный работа @
не преобразована в @
;
РЕШЕНИЕ:
1) с вашей помощью (Квентин и vol7ron) я пришел с этим решением (1)
$HTML::Entities::char2entity{'@'} = '@';
$HTML::Entities::char2entity{'!'} = '!';
$HTML::Entities::char2entity{'#'} = '#';
$HTML::Entities::char2entity{'%'} = '%';
$HTML::Entities::char2entity{'.'} = '.';
$HTML::Entities::char2entity{'*'} = '*';
$str=HTML::Entities::encode_entities($str, q{@"%'.&#*$^!});
2), и я нашел более короткий (лучше) решение (2) нашел его here:
$str=HTML::Entities::encode_entities($str, '\W');
символ '\ W' делает работу
@ von7ron с решением (1) вам нужно будет указать символы, которые вы хотите перевести, как Quentin, упомянутые ранее, даже если они находятся на таблице переводов.
Я уже упоминал, что это был мой второй пункт, который я сделал: «Затем вам нужно указать символ, который вы хотите перевести, если вы его не используете« <> & », поэтому я добавил оба параметра« @ 'и'. 'Если вы ничего не указываете в списке, он использует' <> * "' по умолчанию, если вы перечислите что-нибудь еще, оно не будет добавляться по умолчанию, оно заменяет его, поэтому, если вы хотите, чтобы символы по умолчанию тоже , вы должны включить в свой список, что я вам показал. – vol7ron
Кстати, вам не нужны все эти '$ HTML :: Entities :: char2entity {...}' строки, и если вы это сделали, это не правильный способ его использования. Вам нужны только их, если вы собираетесь вводить символы, отличные от ASCII. «\ W» была хорошей находкой - единственным специальным (не-алфавитно-цифровым) символом, который не сможет избежать этого решения, - это подчеркивание ('_'), но это не является большой проблемой. – vol7ron