Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Проблемы с кодировкой в wap


Автор: Dima85 5.9.2009, 11:54
wap сайт выводит как русский так и немецкий, английский и несколько других языков.
Проблема в том что некоторые мобильные телефоны некорректно выводят русский текст, некоторые немецкие буквы. Я надеюсь вы понимаете о чем я.

Пришлось прибегнуть к такому решению:
Код

my %mchars = ('А' => 'А',
'Б' => 'Б','В' => 'В','Г' => 'Г','Д' => 'Д',
'Е' => 'Е','Ё' => 'Е','Ж' => 'Ж','З' => 'З',
***
'я' => '&#x044F;','\[' => ' ','\]' => ' ',',' => '<br/>');

for my $c (keys %mchars) {
    $perevod =~ s/$c/$mchars{$c}/g;
}


Оно работает, все нормально но я не охватил все символы которые некорректно выводят мобильные телефоны.
Может есть какие-то другое решение позволяющее все символы перекодировать в коды? 
Спасибо.

Автор: sir_nuf_nuf 6.9.2009, 11:16
Dima85, Насколько я понимаю вам нужно сделать сайт в unicode (что бы отображались разные языки)
Perl поддерживает (и поощряет) кодировку utf-8.
Поэтому все что вам нужно:
1) Все данные писать в utf8
1А) Если это текстовый файл (например шаблон) - то просто используйте редактор с utf-8 и сохраните файл в этой кодировке
1Б) Если данные лежат прямо perl файле, то пишите
Код

use utf8;
my $str = "это утф-8 текст. Ya - ya!";

2) В заголовках выдваемой странице нужно указывать Content-Type:    text/html; charset=utf-8

Автор: Dima85 6.9.2009, 14:29
Спасибо за совет, буду пробовать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)