Регулярные выражения и Unicode-символы

(c) XKCD Everybody stand back. I know regular expressions!
Некоторое время назад возникла необходимость сделать скрипт, который будет удалять из текста в utf8 некоторые специальные Unicode-символы:
$_ =~ s/[\«\»]//g;
Вроде все нормально, выражение должно отрабатываться нормально. Однако...
Работать-то оно работает, но после его применения к тексту многие кирилличиские символы заменяются знаками вопроса (ну не могут регуярные выражения хорошо работать с русским юникодом :( ).
И что-же делать?
А удалять символы не по их представлению, а по hex-кодам:
$_ =~ s/[\xC2AB\xC2BB]//g;

Спецально для этого написал небольшой скрипт, выдающий код интересующего символа: скачать.

ЗЫ: Посоветовали сей метод тут — http://forum.codenet.ru/showthread.php?t=46104

Поблагодарить автора

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>