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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема кодировки при взаимодействии с MySQL

Сообщения:  [1-10]   [11-13] 

 
 автор: Trianon   (29.03.2007 в 12:29)   письмо автору
 
   для: YellowMouse   (29.03.2007 в 11:53)
 

консоль живет не в ANSI-(которая 1251), а в OEM-кодировке (которая как раз 866). Для совместимости со старыми консольными программами.
Впрочем кодировку консоли можно переключить командой chcp . Вот только все диагностики сразу станут нечитабельными...... Jedem des zeihne

   
 
 автор: YellowMouse   (29.03.2007 в 11:53)   письмо автору
 
   для: Trianon   (29.03.2007 в 09:56)
 

866-я? В Виндоус же русский кодируется cp1251...

   
 
 автор: Trianon   (29.03.2007 в 09:56)   письмо автору
 
   для: YellowMouse   (29.03.2007 в 06:17)
 

Почему кривой?
Нормальный. Просто угадывать кодировку базы и клиента не умеет. По умолчанию настроен на западную европу.
В нем тоже можно кодировку задать. Главное - не обознаться. в консольном окне виндовс по умолчанию кодировка другая. У русского - cp866.

   
 
 автор: YellowMouse   (29.03.2007 в 06:17)   письмо автору
 
   для: Trianon   (12.01.2007 в 15:55)
 

А при создании таблицы через консольного клиента с кодировками происходит что-то не то? Зачем тогда его включают в дистрибутив, если он такой кривой?

   
 
 автор: Burn-89   (12.01.2007 в 15:59)   письмо автору
 
   для: Trianon   (12.01.2007 в 15:55)
 

Нет, не выполняю..., но попробую, спасибо...

   
 
 автор: Trianon   (12.01.2007 в 15:55)   письмо автору
 
   для: Burn-89   (12.01.2007 в 15:44)
 

Запрос на установку кодировки

 mysql_query("SET NAMES 'cp1251'");
сразу после соединения с сервером выполняете?

Ситуацию,при которой Вы на выходе скрипта получаете текст в DOS я пмогу предположить лишь одну: Изначально таблица в БД была создана и/или заполнена из-под консольного клиента mysql.exe .

   
 
 автор: Burn-89   (12.01.2007 в 15:44)   письмо автору
 
   для: Trianon   (12.01.2007 в 15:36)
 

Вообщем пишу скрипт для того, чтобы поместить данные в базу данных, ну допустим база данных форума, мне надо из форм, где вводят $имя и $фамилию всё это вставить, всё хорошо получается, но когда произвожу обратную операцию, тоесть хочу узнать имена посетителей форума, вывожу их в браузер и тут засада (русскоязычные символы в другой кодировке), только после помещения записей базы данных
в массив (ну это понятно) и обработки массива функцией convert_cyr_string($массив['переменная'], "a", "w") - только тогда всё выводится в должном порядке... Хочется сделать проще... сами понимаете не всегда же обрабатывать функцией...

   
 
 автор: Trianon   (12.01.2007 в 15:36)   письмо автору
 
   для: Burn-89   (12.01.2007 в 15:26)
 

> а наоборот....

Пожалуйста, подробнее с этого момента.
А то так и неясно, что у Вас не идет.

   
 
 автор: Burn-89   (12.01.2007 в 15:26)   письмо автору
 
   для: Trianon   (12.01.2007 в 15:21)
 

я понимаю, что "а" - это кодировка DOS, версия сервера 5.1, дамп не смогу привести, так как пишу с чужого компа, но в конфиг. файле (помню), что кодировка win-1251 прописана - кодировка MySQL.. Когда из формы вставляю, всё чётко отображается в БД, а наоборот....

   
 
 автор: Trianon   (12.01.2007 в 15:21)   письмо автору
 
   для: Burn-89   (12.01.2007 в 14:33)
 

a - обозначение страницы cp866, то есть кодировки DOS.
Какая у Вас версия сервера?
Приведите, пожалуйста, дамп структуры таблицы.
А заодно и результат работы запроса

for($res = mysql_query ("SHOW VARIABLES LIKE '%CHARACTER_SET\_%'"); 
    $row = mysql_fetch_row($res);  print($row[0].": ".$row[1].'<br/>'));
после подключения к БД.

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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