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
Форумы портала PHP.SU :: Версия для печати :: MYSQL и кодировки
Форумы портала PHP.SU » » Кодировки и все смежное » MYSQL и кодировки

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

1. Get - 31 Июля, 2011 - 22:23:23 - перейти к сообщению
Доброго времени суток. Подскажите на вопрос mysql и кодировок.
Создал через консоль БД, в ней таблицу test. Закинул в неё пару русских строк. В итоге всяких манипуляций с set names cp1251 и прочим, о которых упоминал гугл, через консоль все выводится нормально. Т.е. русский текст читается. Но обычный скрипт чтения БД
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. // запросим данные таблицы
  3.                 $query = "select * from test";
  4.                 $res = mysql_query($query);
  5.                 if(!$res) {
  6.  
  7.                         $_SESSION['error_message'] = mysql_error();
  8.  
  9.                         return false;
  10.                 }
  11.  
  12.                 $number = mysql_num_rows($res);
  13.                 for($i = 0; $i < 10; $i++) {
  14.                         $row = mysql_fetch_array($res);
  15.                         //mysql_set_charset("cp1251");
  16.                         echo($row[0]);
  17.                 }
  18.  


выводит крякозябры. Почему консоль читает нормально, а скрипт нет?
2. OrmaJever - 31 Июля, 2011 - 22:26:28 - перейти к сообщению
Get пишет:
Почему консоль читает нормально, а скрипт нет?

не скрипт а браузер, ему нужно ткнуть носом в кодировку
PHP:
скопировать код в буфер обмена
  1. header('Content-type: text/html; charset=windows-1251');
3. Get - 31 Июля, 2011 - 22:45:24 - перейти к сообщению
Вставил в начало скрипта, не помогает. Всё равно крякозябры

Вот кстати на запрос show variables like "char%" выдаётся:
character_set_client: cp1251;
character_set_connection: cp1251;
character_set_database: utf8;
character_set_filesystems: binary;
character_set_results: cp1251;
character_set_server: utf8;
character_set_system: utf8;

Опыта пока что нету, может быть тут поменять что нить?
4. Arni - 31 Июля, 2011 - 23:48:42 - перейти к сообщению
Get пишет:
Вставил в начало скрипта, не помогает. Всё равно крякозябры

Вот кстати на запрос show variables like "char%" выдаётся:
character_set_client: cp1251;
character_set_connection: cp1251;
character_set_database: utf8;
character_set_filesystems: binary;
character_set_results: cp1251;
character_set_server: utf8;
character_set_system: utf8;

Опыта пока что нету, может быть тут поменять что нить?


Ну возможно потому что уже в базу залито криво. Если вставлять нове записи то они нормально уже отображаются?
5. Get - 01 Августа, 2011 - 05:06:04 - перейти к сообщению
База как таковая тестовая. Создал заново базу, закинул пару строк на русском.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. create database test;
  3. use test;
  4. create table `test` (`test` varchar(60));
  5. insert into `test` values ('фывфыв'),('йцдлуйц');
  6.  

В консоли читается нормально, а вот при работе скрипта браузер выводит крякозябры.
Кстати в phpMyAdmin тоже крякозябры. Только в консоли нормально.
6. LIME - 01 Августа, 2011 - 08:00:10 - перейти к сообщению
Get так вы заполняете базу через консоль
значит в 866 по умолчанию
вы заполняйте скриптом или в phpmyadmin
Arni пишет:
Ну возможно потому что уже в базу залито криво.
7. Мелкий - 01 Августа, 2011 - 08:50:18 - перейти к сообщению
Get пишет:
В итоге всяких манипуляций с set names cp1251 и прочим, о которых упоминал гугл, через консоль все выводится нормально.

Ну так и из скрипта надо сказать, какую кодировку ждём. Тем же самым запросом set names или, если окружение позволяет, функцией mysql_set_charset.
8. Get - 01 Августа, 2011 - 17:48:05 - перейти к сообщению
Дело действительно оказалось в том, что я вводил данные через консоль

http://www[dot]mysql[dot]ru/webboard/ind[dot][dot][dot]1=10971&n2=1

Благодарю.

 

Powered by ExBB FM 1.0 RC1