Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как текст в кодировке win1251 отразить верно в DOS при помощи perl

14K
10 сентября 2007 года
den_mechel
16 / / 16.03.2006
Существует программа на PERL , которая парсит страницу HTML в кодировке win1251
Вот эта страница:
http://www.autochel.ru/advertise/advertise.php?cmd=search&field=date&order=desc&target=2&marka=0&modif=211&model=0&year1=2004&year2=2007&probeg1=&probeg2=&cena1=&cena2=&colour=0&period=1

В результате получаем примерно следующее:
В HTML
------------------
ID: 168817
Price: 230'000
Model: ВАЗ 2110
Year: 2005
Probeg: 40'000
Color: Нефертити
Date: 10 сентября 0:46
-------------------

А вот в окно дос если выводить эту инфу то ни очень получаеться
-------------------
ID: 168817
Price: 230'000
Model: ┬└╟ 2110
Year: 2005
Probeg: 40'000
Color: ═хЇхЁЄшЄш
Date: 10 ёхэЄ*сЁ* 0:46
------------------

Примечание: Данные в примерах стоящие после двоеточия беруться непосредственно со страниц сайта

Как видно в примере с DOS симолы кирилицы искажены
Как это можно поправить?
2
11 сентября 2007 года
squirL
5.6K / / 13.08.2003
перекодировать перед выводом текст в CP866
http://search.cpan.org/~mpiotr/Text-Iconv-1.5/Iconv.pm
14K
11 сентября 2007 года
den_mechel
16 / / 16.03.2006
Цитата: squirL
перекодировать перед выводом текст в CP866
http://search.cpan.org/~mpiotr/Text-Iconv-1.5/Iconv.pm


Проблема в том, программа на perle работает под виндой, а модуля ppm под винду нет
The Text::Iconv module provides a Perl interface to the iconv() function as defined by the Single UNIX Specification.

353
11 сентября 2007 года
Nixus
840 / / 04.01.2007
Прочитать стандарты и написать функцию никак?
Пример только для букв, если нужны спец символы - G и Я.

 
Код:
sub conv
{
    my($str) = @_;
    $str =~ tr/\xC0-\xFF\xA8\xB8/\x80-\xAF\xE0-\xEF\xF0\xF1/;
    $str;
}

print conv("Привёт!");
14K
11 сентября 2007 года
den_mechel
16 / / 16.03.2006
Цитата: Nixus
Прочитать стандарты и написать функцию никак?
Пример только для букв, если нужны спец символы - G и Я.

 
Код:
sub conv
{
    my($str) = @_;
    $str =~ tr/\xC0-\xFF\xA8\xB8/\x80-\xAF\xE0-\xEF\xF0\xF1/;
    $str;
}

print conv("Привёт!");



Спасибо за функцию
Когда я писал запрос я как раз и хотел получить что то типа tr
Я и сам пытался эту замену написать, но никак ни мог найти соответствия символов, да и со стандартами кодировок у меня проблемы
Всё заработало в лучшем виде
Ещё раз спасибо

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог