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


Автор: Гость_Alex 6.6.2005, 12:22
Всем привет!!

У меня тут вопрос возник.
Я скачиваю страницы из Нета (использую модуль LWP), а потом мой скрипт делает парсинг и выводит в браузере нужные фрагменты контента. Но страницы, которые я скачиваю бывают в разних кодировках, и поетому очень часто в браузере отображаеться полный бред... smile

Подскажите пожалуйста, как можна узнать, в какой кодировке скачанный текст, и как потом можна переформатировать его из етой кодировки в нужную (например, в UTF-8)?

И еще. Бывает, что скачанная страница уже в нужной кодировке, а браузер все равно выбирает не ту ... Можно, конечно, View->Encoding... , но ето, согласитесь, немного не то ... smile

Подскажите, народ!! Заранее благодарен.

Автор: chaos 8.6.2005, 12:45
перекодировать можно с помощью tr
а про кодировку! smile
а не проще ли сначала узнать в какой кодировки страницы сайта и потом в скрипте бырать нужную?

Автор: Anarki 8.6.2005, 21:25
Чтобы узнать кодировку документа нужно либо:
1. смотреть данные метатега encoding
2.Content-Type: text/html; charset=windows-1251
в хедерах

Автор: Гость_Alex 9.6.2005, 11:48
я понимаю, что можно с помощью tr...
а где можно узнать, что нужно на что менять?
такие вещи:
Код

$text =~ tr/Рј/м/gi;
$text =~ tr/Р·/з/gi;
$text =~ tr/Рё/и/gi;

что-то не очень проходят... я наверное что-то не так делаю...

А как можна в скрипте выбрать нужную кодировку? Случайно не так:
Код

print qq(<meta http-equiv="Content-Type" content="text/html; charset=utf-8">);
???

браузер ето не хавает... воспринимает текст в другой кодировке... smile

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