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 :: Версия для печати :: И снова кодировка..... [2]
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » И снова кодировка.....

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

16. valenok - 25 Января, 2009 - 11:40:58 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-type: text/html; charset=windows-1251');
  3.  
  4. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  5. mysql_query("SET NAMES 'cp1251'");  
  6.  
  7. ?> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <?PHP
  8.  
  9. $mas=mysql_query("SELECT * FROM `questions`");
  10. while( $mass=mysql_fetch_array($mas))
  11.     echo $mass["question"],'<br/>';
17. SergeyQW - 25 Января, 2009 - 11:43:45 - перейти к сообщению
Аналогично.. сергей
18. valenok - 25 Января, 2009 - 11:52:48 - перейти к сообщению
Забавно
Открой пожалуйста phpMyAdmin и посмотри что стоит в collation у этого поля ?
И вернёмся к первому варианту с ютф-8. Если второй кнопочкой ткнуть в браузер и выбрать в выдающем меню "информация о странице" или 'view page info' (filefox) то что написно в поле кодировки ?
19. SergeyQW - 25 Января, 2009 - 12:06:25 - перейти к сообщению
Итак
Срвнение у этого поля cp1251_general_ci
Сопоставление соединения с MySQL:cp1251_general_ci
MySQL-кодировка: UTF-8 Unicode (utf8)
Заодно my.ini и переменные прикреплю.
20. Kosteg - 06 Февраля, 2009 - 21:40:35 - перейти к сообщению
Тоже появилась проблема с кодировкой. Но уже когда залил сайт на хостинг. У меня на локальном компе стоит денвер. Все отлично работает. Делаю дамп базы из SQLyog, просматриваю через текстовик - там utf8, где выбрать кодировку при создании дампа - не нашел. В самих таблицах collation - cp1251_general_ci. И заливаю ее на хостинг(qkr.in). Но, данные из базы отображаются в виде ?????????? ???? ?? и т.д. Менял руками utf8 на cp1251 - не помогло. Может дело в хостинге? Когда у них на c_panel выбираю русский - тоже идут "????????"
21. betonka - 20 Марта, 2009 - 11:32:49 - перейти к сообщению
вот как я вышел с этой ситуации при выводе данных

CODE (text):
скопировать код в буфер обмена
  1.   $db=mysql_pconnect("localhost","acis_k",'dgFyLjGS');
  2.  
  3.   if(!$db)
  4.   {
  5.   echo "ERROR: couldnt connect to dbase";
  6.   exit;
  7.   };
  8. //echo 'соиденение установленно';
  9.  
  10. if (function_exists('mysql_set_charset') === false) {
  11.  
  12. function mysql_set_charset($charset, $db = null)
  13. {
  14.      if ($db == null)
  15.      {
  16.          return mysql_query('SET CHARACTER SET "'.$charset.'"');
  17.      } else {
  18.          return mysql_query('SET CHARACTER SET "'.$charset.'"', $db);
  19.     }
  20. }
  21. }
  22.   mysql_set_charset("cp1251", $db);



но возникла проблема при записи в базу кириллицы, срабатывает 50 на 50 или коректно запишет или ???????????????
22. Stierus - 20 Марта, 2009 - 11:54:40 - перейти к сообщению
Напиши результат запроса к бд:

CODE (text):
скопировать код в буфер обмена
  1. SHOW VARIABLES WHERE Variable_name LIKE '%character%' OR Variable_name LIKE '%collation%' OR Variable_name = 'init_connect'
23. betonka - 20 Марта, 2009 - 13:25:56 - перейти к сообщению
Напиши результат запроса к бд:


CODE (text):
скопировать код в буфер обмена
  1. Variable_name    Value
  2. character_set_client    utf8
  3. character_set_connection        utf8
  4. character_set_database  utf8
  5. character_set_filesystem        binary
  6. character_set_results   utf8
  7. character_set_server    latin1
  8. character_set_system    utf8
  9. character_sets_dir      /usr/share/mysql/charsets/
  10. collation_connection    utf8_general_ci
  11. collation_database      utf8_general_ci
  12. collation_server        latin1_swedish_ci
  13. init_connect    
24. Stierus - 20 Марта, 2009 - 13:31:22 - перейти к сообщению
выводы сам сделаешь ?Улыбка
25. betonka - 20 Марта, 2009 - 13:35:20 - перейти к сообщению
тобишь база сама на utf8,я делаю 1251, потому проскакивает через раз ???????? Но как решить эту проблему?
(Добавление)
получается ведь вся база построенна на cp1251_general_ci,
26. Stierus - 20 Марта, 2009 - 13:43:27 - перейти к сообщению
Цитата:
получается ведь вся база построенна на cp1251_general_ci,
Это откуда так получается ?

Мне видися, что у тебя вся база в utf-8, соединение такое же, результат приходит тоже в utf-8 ... тебе нужно перед работой iconv использовать, причем не только при чтении, но и при записи (сайт у тебя cp-1251, как я понимаю), либо перенастраивать целиком базу данных. Ты можешь доступ через интернет к ней открыть ?
(Добавление)
http://sqlinfo[dot]ru/articles/info/2[dot]html
(Добавление)
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]-conversion[dot]html
27. betonka - 22 Марта, 2009 - 09:15:16 - перейти к сообщению
Сделал вот такую дописку

CODE (text):
скопировать код в буфер обмена
  1. mysql_query('SET NAMES \'cp1251\'');


пока работает Спасибо за помощь Stierus

 

Powered by ExBB FM 1.0 RC1