О себе События Портфолио Статьи Гостевая Фотоальбом На злобу дня Ссылки Учеба Программы
Alex_K (г.Киров) - Алексей Кощеев
Хостинг и регистрация доменов в Кирове

Интересные решения 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 = '&#x0451;&#x0430;&#x0431;&#x0432;&#x0433;&#x0434;&#x0435;&#x0436;&#x0437;&#x0438;&#x0439;&#x043A;&#x043B;&#x043C;&#x043D;&#x043E;&#x043F;&#x0440;&#x0441;&#x0442;&#x0443;&#x0444;&#x0445;&#x0446;&#x0447;&#x0448;&#x0449;&#x044A;&#x044B;&#x044C;&#x044D;&#x044E;&#x044F;&#x0401;&#x0410;&#x0411;&#x0412;&#x0413;&#x0414;&#x0415;&#x0416;&#x0417;&#x0418;&#x0419;&#x041A;&#x041B;&#x041C;&#x041D;&#x041E;&#x041F;&#x0420;&#x0421;&#x0422;&#x0423;&#x0424;&#x0425;&#x0426;&#x0427;&#x0428;&#x0429;&#x042A;&#x042B;&#x042C;&#x042D;&#x042E;&#x042F;'; 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 года.

Далее: Как прочитать данные из файла DBF?
Предыдущая заметка:Как преобразовать доменное имя, содержащее символы национального алфавита?
Перейти к списку заметок
Fanshop.ru

Рейтинг@Mail.ru

Rambler's Top100

© Алексей Кощеев, г.Киров, 2001-2024 хостинг предоставлен компанией Айхэд