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 :: И снова кодировка.....

 PHP.SU

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


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

> Без описания
SergeyQW
Отправлено: 24 Января, 2009 - 15:23:08
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




Прочитал очень много тем, но ничего не помогает.... Постараюсь свою проблемму очень подробно описать.

Использую связку: apache_2.2.11+php-5.2.8+mysql-essential-5.1.30.
Система: WinXP SP3.

Постараюсь описать все очень подробно:
После установки Apace+PHP приступил к установке БД. В настройках БД(когда вылетело окно с вопросом о кодировке) указал cp1251. Установил pma. Импортировал БД. Далее выполняю запрос чтобы вывести содержание таблицы на экран. Получаю ??????. В pam стоит сравнение cp1251_general_ci в этой таблице. А на главной странице pam Сопоставление соединения с MySQL:cp1251_general_ci. В my.ini прописано default-character-set=cp1251. А теперь начинается самое интересное:

Пишу
PHP:
скопировать код в буфер обмена
  1. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  2. mysql_query("SET NAMES cp1251");   //тут еще раз указываю кодировку
  3. mysql_query("set character_set_client='cp1251'");
  4. mysql_query("set character_set_results='cp1251'");
  5. mysql_query("set collation_connection='cp1251'");
  6. $mas=mysql_query("SELECT * FROM `questions`");
  7. while(true)
  8. {
  9.         $mass=mysql_fetch_array($mas);
  10.         if(!$mass) break;
  11.         $qw=$mass["question"];
  12. /*Обратите сюда внимание!
  13.   Я меняю кодировку из utf-8 в 1251!! */       
  14. $qw = iconv("utf-8","windows-1251",$qw);
  15.         $ans=$mass["answer"];
  16.         echo("$qw<br>");
  17. }
  18.  
  19.  

И только после этого получаю нормальный, русский текст!
В шапке страницы тоже указано windows-1251.
Вопрос: как всетаки сделать так, чтобы все правильно отображалось без этих извращений?

(Отредактировано автором: 24 Января, 2009 - 15:25:04)

 
 Top
valenok
Отправлено: 24 Января, 2009 - 15:33:12
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




дык у тебя текст в базе в utf8 получается же
Может не стоит его приводить к cp1251 ?
Попробуй поработать с ним в юникоде


-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 24 Января, 2009 - 15:40:13
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




Может так и получается... Но... В pam в кодироке cp1251 все ок.... и + я же указал
Цитата:
SET NAMES cp1251
что хочу данные видеть в 1251. По идее же он мне должен именно в 1251 отдавать! А получается, что нет, а если я пишу просто без
Цитата:
SET NAMES cp1251
, то все в крякозябрах.... Мой мозг сломлен... Восстание машин какое то......
 
 Top
valenok
Отправлено: 24 Января, 2009 - 16:50:13
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Оно вам не меняет кодировку. Оно устанавливает кодировку подключения.
А в базе данные по прежнему в utf8


-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 24 Января, 2009 - 16:56:52
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




Оу.. буду знать. Кстати, если я убираю
PHP:
скопировать код в буфер обмена
  1. mysql_query("SET NAMES cp1251");   //тут еще раз указываю кодировку
  2. mysql_query("set character_set_client='cp1251'");
  3. mysql_query("set character_set_results='cp1251'");
  4. mysql_query("set collation_connection='cp1251'");

Убираю функцию изменения кодировки,и в шапке пишу utf-8, то все равно все в вопросах!!! А если бы база отдавала все в utf-8 то по идее этого не должно было бы быть
 
 Top
valenok
Отправлено: 24 Января, 2009 - 17:35:31
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Это всё уберите и iconv тоже
и оставьте mysql_query('SET NAMES \'UTF8\'');
Кстати, попробуйте сначала кавычки поставить в
mysql_query('SET NAMES \'cp1251\'');

(Отредактировано автором: 24 Января, 2009 - 18:10:28)



-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 24 Января, 2009 - 17:39:51
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




Это все убрал.. не помогает..... Чет у меня тут явно не то..((
 
 Top
valenok
Отправлено: 24 Января, 2009 - 18:11:11
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Так, попробуй еще раз. Я отредактировал предыдущее сообщение.


-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 24 Января, 2009 - 18:31:51
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




К сожалению это тоже не помогло..... Кстати еще вопрос: а имеет смысл ставить 6 мускул?

Блин.... Уже все настройки сравнил с одним правильно работающим хостингом.... Все одинаково до каждой запятой и точки.... уже и не знаю что делать.... 2 раза сервер переставил!!
 
 Top
valenok
Отправлено: 24 Января, 2009 - 19:23:33
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Ладно, поехали с самого начала

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  4. mysql_select_db('БАЗА ДАННЫХ');
  5.  
  6.  mysql_query("SET NAMES 'UTF8'");  
  7. // mysql_query("SET NAMES 'cp1251'");
  8.  
  9. $mas=mysql_query("SELECT * FROM `questions`");
  10. while( $mass=mysql_fetch_array($mas))
  11.     echo $mass["question"],'<br/>';
  12.  
  13.  


Что происходит в первом случаем с ютф8
и что во втором, если ютф закомментировать и раскомментировать cp

(Отредактировано автором: 24 Января, 2009 - 19:24:43)



-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 24 Января, 2009 - 19:39:54
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




1ый случай- сергей
2ой-сергей
но если в браузере поставить кодироку UTF-8, то второй случай отображается правильно
а 1ый всегда кроказябры(

1ый случай - mysql_query("SET NAMES 'UTF8'")
2ой - mysql_query("SET NAMES 'cp1251'");
 
 Top
valenok
Отправлено: 24 Января, 2009 - 21:53:55
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




В первом случае у вас из базы достаётся правильно и коверкается браузером
во втором коверкается базой и выводится правильно =)

Ставьте в браузере ютф8 =)


-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 25 Января, 2009 - 10:46:00
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




пробовал... тоже не помогает....
CODE (text):
скопировать код в буфер обмена
  1. <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  2. <?php
  3. include"includes/cfg.php";
  4. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  5. mysql_select_db('qqq');
  6.  
  7. //mysql_query("SET NAMES 'UTF8'");
  8. //mysql_query("SET NAMES 'cp1251'");
  9.  
  10. $mas=mysql_query("SELECT * FROM `qqq`");
  11. while( $mass=mysql_fetch_array($mas))
  12.     echo $mass["qqq"],'<br/>';
  13.  
  14.  
  15. ?>
выводит "???�?????�??"
CODE (text):
скопировать код в буфер обмена
  1. <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  2. <?php
  3. include"includes/cfg.php";
  4. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  5. mysql_select_db('qqq');
  6.  
  7. mysql_query("SET NAMES 'UTF8'");
  8. //mysql_query("SET NAMES 'cp1251'");
  9.  
  10. $mas=mysql_query("SELECT * FROM `qqq`");
  11. while( $mass=mysql_fetch_array($mas))
  12.     echo $mass["qqq"],'<br/>';
  13.  
  14.  
  15. ?>
выводит "сергей"
CODE (text):
скопировать код в буфер обмена
  1. <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  2. <?php
  3. include"includes/cfg.php";
  4. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  5. mysql_select_db('qqq');
  6.  
  7. //mysql_query("SET NAMES 'UTF8'");
  8. mysql_query("SET NAMES 'cp1251'");
  9.  
  10. $mas=mysql_query("SELECT * FROM `qqq`");
  11. while( $mass=mysql_fetch_array($mas))
  12.     echo $mass["qqq"],'<br/>';
  13.  
  14.  
  15. ?>
выводит "сергей"... опять хрень какя-то...
 
 Top
valenok
Отправлено: 25 Января, 2009 - 10:52:35
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-type: text/html; charset=utf-8');
  3.  
  4. $db_link=mysql_connect($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["pass"]);
  5. mysql_query("SET NAMES 'UTF8'");  
  6.  
  7. ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?PHP
  8.  
  9. $mas=mysql_query("SELECT * FROM `questions`");
  10. while( $mass=mysql_fetch_array($mas))
  11.     echo $mass["question"],'<br/>';
  12.  


-----
Truly yours, Sasha.
 
My status
 Top
SergeyQW
Отправлено: 25 Января, 2009 - 11:20:27
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2009  


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




сергей......
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB