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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> cp1251 MySQL perl, проблема с кодировкой 
V
    Опции темы
net85
  Дата 7.12.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Win XP
в my.ini
default-character-set=cp1251
init-connect="SET NAMES cp1251"

таблица в кодировке cp1250_general_ci
данные вводила в консоли mysql,там же все нормально отображается

в perl файле из данных создается xml файл
прописала
use locale;


$dbh = DBI->connect($dsn, $user, $password) or die "Error connecting to database";
$dbh->do("set character_set_client='cp1251'");
$dbh->do("set character_set_connection='cp1251'");
$dbh->do("set character_set_results='cp1251'");

все равно в выходном файле вроде этого

<strana>ЃҐ« агбЁп</strana>
<naspunkt_name>ЊЁбЄ</naspunkt>
<street_name>ЊЁа </street_name>

пробовала в open ($fh, ">","$testfile") добавить ">:encoding(cp1251)"
но это совсем же уже масло масляное,он у меня уже в этой кодировке

может при print как то явно указать в какой кодировке записывать данные в файл,подскажите?

при просмотре переменных окружения
HTTP_ACCEPT_CHARSET="iso-8859-1, utf-8, utf-16, *;q=0.1"

значит use locale; убрать?
или это не к тому?(закоментила,все равно не помогло)))

применение cp1251 принципиально,так сказали сделать
PM MAIL   Вверх
Vaneska
Дата 7.12.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуйте
Код

$dbh->do('set names cp1251');


Добавлено через 11 минут и 22 секунды
1. Скрипт и шаблоны перекодируем в cp1251
2. Убираем use locale
3. 
Код

$dbh->do('set names cp1251');


Должно помочь.
--------------------
http://isokolov.blogspot.com/
PM MAIL ICQ   Вверх
net85
Дата 7.12.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я работаю в Scite и насколько я понимаю скрипт уже в cp1251, так он мне предлагает из нее в др кодир. перевести текст
остальные 2 пункта выполнила,не помогло(

Это сообщение отредактировал(а) net85 - 7.12.2009, 15:34
PM MAIL   Вверх
ginnie
Дата 7.12.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



net85, проверьте, что скрипт в кодировке cp1251. Выведите в файл текст не из БД, а непосредственно из скрипта (т.е. он точно будет в cp1251) и посмотрите, в какой кодировке окажется текст в файле. О результатах сообщите.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
net85
Дата 7.12.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я не очень поняла,сделала так.
в скрипте вывожу в файл просто текст

print $fh "Привет!!!!!!!!!";

смотрю в блокноте этот xml файл,там все так

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="str.xsl"?>
<object>
Привет!!!!!!!!!</object>

в браузере тоже выставила win1251, с ней тоже Привет!!!!
я не знаю как еще по другому кодировку у файла проверить(


Это сообщение отредактировал(а) net85 - 7.12.2009, 16:02
PM MAIL   Вверх
ginnie
Дата 7.12.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



net85, все правильно! Теперь выведите текст из БД. Сначала без каких-либо set'ов. Потом с $dbh->do('set names cp1251');. Покажите результат.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
net85
Дата 7.12.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



зашла в phpmyadmin, там тоже кракозябры на мете текстовых данных были.
исправила одно значение,теперь оно нормально отображается в  браузере с выставленой кодировкой win 1251

но кракрзябры в консоли mysql
значит консоль не в win 1251 работает?и введеные из нее данные там были не в cp 1251???????????

PM MAIL   Вверх
ginnie
Дата 7.12.2009, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



net85, консоль скорее всего у Вас в cp866.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
net85
Дата 7.12.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



вот без set

Код

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="str.xsl"?>
<object>
<strana>?????????</strana>
<naspunkt_name>??­??</naspunkt>
<street_name>??? </street_name>
<building_number>5</building_number>
<korpus>-</korpus>
<apartment_number>34</apartment_number>
<total_area>90</total_area>
<living_area>73</living_area>
<room_count>3</room_count>
<sanuz_sov>0</sanuz_sov>
<sanuz_raz>1</sanuz_raz>
<lodg>1</lodg>
<balk>1</balk>
</object>



c ними
Код

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="str.xsl"?>
<object>
<strana>Беларусия</strana>
<naspunkt_name>ЊЁ­бЄ</naspunkt>
<street_name>ЊЁа </street_name>
<building_number>5</building_number>
<korpus>-</korpus>
<apartment_number>34</apartment_number>
<total_area>90</total_area>
<living_area>73</living_area>
<room_count>3</room_count>
<sanuz_sov>0</sanuz_sov>
<sanuz_raz>1</sanuz_raz>
<lodg>1</lodg>
<balk>1</balk>
</object>


Вот Беларусия как раз исправленная,значит я их в консоли не в той кодировке получается вставила?а нельзя узнать в какой кодировке она работает?
PM MAIL   Вверх
Vaneska
Дата 7.12.2009, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ginnie @  7.12.2009,  16:22 Найти цитируемый пост)
net85, консоль скорее всего у Вас в cp866. 


--------------------
http://isokolov.blogspot.com/
PM MAIL ICQ   Вверх
net85
Дата 7.12.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


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

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


 




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


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

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