Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой 
:(
    Опции темы
DEER
Дата 21.11.2005, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 1
Всего: 13



Здравствуйте.

Раньше был Perl версии 5.005(вроде так), была проблема, что при вводе\выводе строк на русском языке, получалась абракадабра, пробовал создавать CGI программки, там всё выводилось нормально.

Сейчас переставил perl на версию 5.8.7,
и теперь и ввод\вывод в консоль, и запросы на выборку\обновление из бд (MySQL 5) и вывод в CGI программках, везде русские символы коряво отображаются smile
Хотя если в Броузере поменять кодировку у уже сгенерированной страницы, то всё отображается нормально.

Есть ли в Perl возможность сделать так, чтобы нормально работать с русскими символами?? smile


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
korob2001
Дата 21.11.2005, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Для CGI программ использующих CGI.pm указываешь заголовок следующим образом
Код

print $cgi->header( -charset => "Windows-1251" );

Для CGI программ не использующих CGI.pm, такой заоголовок:
Код

print "Content-Type: text/html;charset=windows-1251\n\n";

Для того, что бы в терминал выводить сообщения на русском языке, читай тему:
http://forum.vingrad.ru/index.php?showtopic=55677

А вообще подобных тем немеренно, пользуйся поиском.



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
DEER
Дата 21.11.2005, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 1
Всего: 13



Спасибо!!
как я понял из
http://forum.vingrad.ru/index.php?showtopic=55677
из БД данные у меня приходят нормальные(потому что у меня все поля в БД прописаны как cp1251)
а уже при выводе они искажаются
Я правильно понял??

Это сообщение отредактировал(а) DEER - 21.11.2005, 11:15


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Kannabismus
Дата 21.11.2005, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тим Тоуди



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 20.11.2005

Репутация: 1
Всего: 2



Попробуй после коннекта сделать
Код

$dbh->do("SET character_set_client = cp1251");
$dbh->do("SET character_set_connection = cp1251");
$dbh->do("SET character_set_results = cp1251");


PM   Вверх
DEER
Дата 28.11.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 1
Всего: 13



Спасибо всем!
Возник вопрос, а то что я везде понаставил кодировку cp1251 отразится на работе программы, если её запускать под unix'ом? нужны ли там все эти преобразования?


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Kiber_rat
Дата 28.11.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MACMANIAC
**


Профиль
Группа: Участник
Сообщений: 276
Регистрация: 18.4.2002
Где: Ashdod, Israel

Репутация: 7
Всего: 9



Это зависит от многих факторов. акой WEB сервер стоит (Apache, русский Apache или еще что-то), в какой кодировке у тебя создавались скрипты (точнее русский в них). Еси на сервере стоит обычный (не русский) апач то все должно работать без модификаций... по идее smile


--------------------
Best regards!                                                             
@..@_____Ku6ep
=*=______\______KPbIC
Код
print join "",map{chr}(split/(\w{2})/,hex(int(2175.57302796298**2)))
PM WWW ICQ Skype Jabber YIM   Вверх
sharq
Дата 29.11.2005, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



DEER если будешь запускать из-под консоли, в которой cp1251 - не установлен, то будет абрракадабрра, а вообще у тебя cgi-скрипт, поэтому если у тебя в заголовке та же кодировка, что и при выводе из БД, то проблем быть не должно.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
DEER
Дата 1.12.2005, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 1
Всего: 13



Народ, а как вам такой расклад:
БД в кодировке latin1
CGI нужно чтоб выводил с cp1251

Пытаюсь сделать так
Код

use Encode;
.....
my $sss = $ref->{'Name'};
       Encode::from_to($sss, "latin1", "cp1251"); print br;
        print $sss;

Выыодит нечто похожее на ????????

как лечится? не знаете?

Это сообщение отредактировал(а) DEER - 1.12.2005, 11:23


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.