You are here

Оправяне на &#([0-9]+);

Като предварителна стъпка в прехода към WordPress 1.2, реших да си оправя базата данни на WordPress. Проблемът беше с едни стари остатъци, които трябва да се превърнат в Уникод. За разлика от Йовко обаче, става въпрос за неща като К. Нямаше как без скрипт, и в случая избрах Perl като царя на механизираната текстообработка. Не можах да го натикам в един регулярен израз всичко, но и така е добре ;-) Нужен е Perl 5.8.

#!/usr/bin/perl
binmode( STDIN, ":utf8" );
binmode( STDOUT, ":utf8" );
while (<>) {
        while (/(&#([0-9]+);)/) {
                my $c = pack("U", $2);
                s/$1/$c/g;
        }
        print;
}

Comments

Впоследствие се оказа, че е нужна една корекция. Кодовете по-малки от 256 по-добре въобще да не се преобразуват.

User login