![]() ![]() |
Интересные решения Perl. Вопросы и ответыКак преобразовать русскую строку для отображения на WAP-сайте?Проблема заключается в том, что отправить WML-код, содержащий символы русского (и не только) алфавита напрямую нельзя. Имеется как минимум два пути: преобразовать текст в UTF-8 и отправить клиенту, либо преобразовать его в безопасные последовательности символов. Для первого варианта достаточно в отдаваемый WML-код добавить строку вида: <?xml version="1.0" encoding="utf-8"?> Второй вариант интересен тем, что он сработает там, где первый бессилен (например, при просмотре сайта через Motorola c330, 350):
sub convert($) {
my $str = shift or return '';
my $wins = 'ёабвгдежзийклмнопрстуфхцчшщъыьэюяЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
my $waps = 'ёабвгдежзийклмнопрстуфхцчшщъыьэюяЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
for ( my $i = 0; $i < 66; $i++ ) {
my $f = substr($wins, $i, 1);
my $t = substr($waps, $i * 8, 8);
$str =~ s!$f!$t!g;
}
return $str;
}
Предложенная функция является основной частью модуля SUS::win2wap авторской системы управления содержимым динамического web-сайта. Опубликовано: 08 апреля 2006 года.
|
|
© Алексей Кощеев, г.Киров, 2001-2023 |
|