Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Perl и mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите с кодировкой
Leviafant
Отправлено: 18 Октября, 2009 - 20:47:47
Post Id



Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Авг. 2008  
Откуда: Курская обл


Помог: 0 раз(а)




CODE (text):
скопировать код в буфер обмена
  1.  
  2. #!/opt/lampp/bin/perl
  3.  
  4. print "Content-type: text/html;charset=windows1251\n\n";
  5.  
  6. use DBI;
  7.  
  8. $host = 'localhost';
  9. $database = 'bb303';
  10. $user = 'root';
  11. $password = '';
  12.  
  13. $dbh = DBI->connect("DBI:mysql:database=$database;host=$host",
  14.                     $user, $password) || die print "Can't connect";
  15.  
  16. $sth = $dbh->prepare(q{SELECT `id` , `message` FROM `flud` });
  17. $sth->execute;
  18.  
  19. while ( ($id,$message)= $sth->fetchrow_array())  
  20. {
  21.     print "$message<br>";
  22. }
  23. $sth->finish();
  24.  
есть вот такой скрипт на перле (линукс), вместо русских букв из базы выводит вопросительные знаки, как это исправить? база кодирована в cp1251_general_ci, пробовал разные кодировки базы, но результат не меняется, пробовал в опере менять кодировку, но тоже не помогает


-----
Пока Рок жив буду жить и Я
 
 Top
Champion Супермодератор
Отправлено: 19 Октября, 2009 - 08:39:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Perl - ждем JusrUserRa. А пока попробуй убедиться, что в самой БД хранится нормальный текст, а не иероглифы, и в скрипте после коннекта выполнить запрос SET NAMEs 'win-1251'
(Добавление)
или cp1251
 
 Top
Leviafant
Отправлено: 19 Октября, 2009 - 09:49:54
Post Id



Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Авг. 2008  
Откуда: Курская обл


Помог: 0 раз(а)




через php выводится нормальный текст
в базе тоже нормальный текст
(Добавление)
Champion пишет:
SET NAMEs 'win-1251'
спасибо помогло
CODE (text):
скопировать код в буфер обмена
  1. $dbh->do("SET NAMES 'cp1251'");


я везде читал что надо в koi8-r
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $dbh->do("SET NAMES 'koi8-r'");
  3. # а потом
  4. Encode::from_to($message, "koi8-r", "cp1251");
  5.  
но у меня оно не работало


-----
Пока Рок жив буду жить и Я
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB