use HTML::Entities;
...
my $fixed = encode_entities( $raw, "\x{460}-\x{2E2E}" );
Работало странно: тире преобразовывалось в —, а кавычки-ёлочки — нет. Причина оказалась простой — кавычки-ёлочки в юникоде находятся совсем не там, где остальные знаки пунктуации с пробелами — не в U+2000–U+205F, а гораздо ближе — их коды U+00AB и U+00BB, то есть, если перевести в десятичную систему счисления, 171 и 187. Ничего не напоминает? :-)Поэтому более правильный вариант выглядит так:
my $fixed = encode_entities( $raw, "\x{A0}-\x{40F}\x{460}-\x{2E2E}" );
November 25 2011, 17:45:00 UTC 6 months ago
November 25 2011, 18:37:07 UTC 6 months ago
Re: Юникод
Потому что на некоторые сайты настолько древние, что переводить их наюникод весьма напряжно. Поэтому на время создания новой, юникодной
версии, приходится изобретать костыли.
November 29 2011, 02:51:16 UTC 5 months ago
немецким „лапкам“ повезло меньше — они не попали даже в первое расширение ASCII (U+0080-U+07FF), оставшись с прочим редкоиспользуемым хламом — U+201E и U+201C.