Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка при отображении данных
 
 автор: Vados   (12.03.2006 в 17:35)   письмо автору
 
 

Всем привет!

У меня такая беда, что при выводе инфо из БД MySQL - у меня всё в браузере отображается ?????? - вот таким.

Прошу помогите, как от этого избавиться?!

Всё перепробовал, но всё равно у меня ничего не выходит.

Буду очень признателен.

   
 
 автор: Vados   (12.03.2006 в 18:45)   письмо автору
 
   для: Vados   (12.03.2006 в 17:35)
 

Прошу Вас, ну хоть кто-нибудь помогите!!!

   
 
 автор: Trianon   (12.03.2006 в 18:54)   письмо автору
 
   для: Vados   (12.03.2006 в 18:45)
 

Возможно, не установлены параметры кодировки для соединения с БД.
  mysql_query ("set character_set_client='cp1251'");
  mysql_query ("set character_set_results='cp1251'");
  mysql_query ("set collation_connection='cp1251_general_ci'");

   
 
 автор: cheops   (12.03.2006 в 19:31)   письмо автору
 
   для: Trianon   (12.03.2006 в 18:54)
 

Кстати, в MySQL вместо этих трёх запросов оказывается можно использовать один
mysql_query("SET NAMES 'cp1251'");

   
 
 автор: Trianon   (12.03.2006 в 20:12)   письмо автору
 
   для: cheops   (12.03.2006 в 19:31)
 

А SET NAMES влияет только на эти три сущности, или еще на что-то?

   
 
 автор: cheops   (13.03.2006 в 00:49)   письмо автору
 
   для: Trianon   (12.03.2006 в 20:12)
 

Да, он по сути для их замены был введён. Для русского языка в кодировке cp1251 его вполне можно использовать, так как сортировка (collation) по умолчанию у cp1251 - cp1251_general_ci как раз подходит для русского языка. Для других яызков, например, для украинского лучше использовать
SET CHARACTER SET 'cp1251'

так как этот оператор эквивалентен
mysql_query ("set character_set_client='cp1251'"); 
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection=@@collation_database");

Т.е. сортировка (collation) используется та, которая выставлена по умолчанию для базы данных, например, cp1251_ukrainian_ci.

   
 
 автор: Vados   (12.03.2006 в 20:21)   письмо автору
 
   для: cheops   (12.03.2006 в 19:31)
 

Привет!
Спасибо за ответ, но то, что вы порекомендовали я не совсем понимаю как применить. Ситуация в следующем.
Я использую phpMyAdmin 2.7.0-pl1 и там на стартовой странице есть поле:
Сопоставление соединения с MySQL: и там у меня стоит: cp1251_bin.

Я так понимаю, что именно про эту проблему вы писали?!

Кроме этого в каждой таблице, например в одном из полей есть раздел: "сравнение", там также указана кодировка cp1251_bin.

Прошу Вас помогите, что мне с этим делать?!

Заранее спасибо Вам всем за помощь.

   
 
 автор: Trianon   (12.03.2006 в 20:24)   письмо автору
 
   для: Vados   (12.03.2006 в 20:21)
 

Вы для вывода информации из БД применяете phpMyAdmin?

   
 
 автор: Vados   (12.03.2006 в 20:35)   письмо автору
 
   для: Trianon   (12.03.2006 в 20:24)
 

Не совсем понимаю вопроса. Я для вывода инфо применяю браузер, но с СУБД работаю через phpMyAdmin.

   
 
 автор: Trianon   (12.03.2006 в 20:49)   письмо автору
 
   для: Vados   (12.03.2006 в 20:35)
 

То есть данные в БД попадают через phpMyAdmin. И из БД к Вам на экран, тоже через phpMyAdmin. И никакими другими серверными скриптами к базе не обращаются. В таком случае то, что Вы описали, крайне маловероятно. phpMyAdmin c собственными данными обычно работает приемлемо и кодировки не путает.

А если Вы всё же работаете с БД через свои php-скрипты, то Вам предложили добавить в них строки, корректирующие настройку кодировок. Добавить где-то после вызова функции mysql_select_db()

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования