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

Форум MySQL

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

 

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

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

тема: Проблема с кодировкой
 
 автор: Neiroromantik   (04.03.2009 в 12:20)   письмо автору
 
 

Добрый день! Возникли проблемы с кодировкой в mysql. Скриптом php заношу в базу данных текстовые поля. Затем другим скриптом их выбираю и в браузере все отображается нормально. Но при подключении через mysql comand line klient, те символы, которые были занесены скриптом, отображаются русскими буквами, но бессмысленым их набором.При добавлении русских символов из команд лайн клиента, они отображаются адекватно. Проблема как раз с отображением русских символов, занесеенных в таблицу сценарием.
Пробовал следующее:
-в файле my.ini в секции client section поставить default-character-set=cp1251, но команд лайн клиент перестал запускаться, пришлось снова вернуть latin1.
-в самой базе написать set names=cp1251, но после этого вместо русских букв появились знаки вопроса.
- в скрипте php написать после соединения с базой mysql_query('SET NAMES cp1251'), но в этом случае вставка полей в базу вообще не происходила.
- создать таблицу с кодировкой сp1251, но данные с русскими буквами не заносились ни через команд лайн клиент, ни через скрипт.
Воостановление из дампа с указанием русской кодировки тоже не дало результата.
Помогите, пожайлуста. Второй день мучаюсь с этой кодировкой!

  Ответить  
 
 автор: cheops   (04.03.2009 в 12:29)   письмо автору
 
   для: Neiroromantik   (04.03.2009 в 12:20)
 

Порядок обычно такой
- создать таблицу с кодировкой сp1251, но данные с русскими буквами не заносились ни через команд лайн клиент, ни через скрипт.
- в скрипте php написать после соединения с базой mysql_query('SET NAMES cp1251'), но в этом случае вставка полей в базу вообще не происходила.

При работе с командной строкой, сменить точечные шрифты на Lucida Console, установить кодировку при помощи команды
chcp 1251

Только после этого запускать клиент mysql.exe, в котором первой командой выполнить
SET NAMES cp1251

  Ответить  
 
 автор: Neiroromantik   (04.03.2009 в 13:09)   письмо автору
 
   для: cheops   (04.03.2009 в 12:29)
 

Спасибо, дружище. Действительно помог. Еще один вопрос :когда я базу на хостинг выложу, будет возможность подключиться к ней через командную строку и если сейчас сделаю все таблицы с кодировкой по умолчанию, то смогу ли просматривать потом записи с руссскими буквами на хосинге?

  Ответить  
 
 автор: cheops   (04.03.2009 в 17:24)   письмо автору
 
   для: Neiroromantik   (04.03.2009 в 13:09)
 

Это от хостинга зависит. Традиционно удаленный доступ закрывается и все действия производятся при помощи phpMyAdmin, однако, ряд хост-провайдеров разрешают удаленный доступ - в этом случае порядок работы точно такой же, как и в случае локальной базы данных, только помимо прочих параметров в mysql.exe указываете параметр -h с адресом сервера.

  Ответить  
 
 автор: Neiroromantik   (05.03.2009 в 04:07)   письмо автору
 
   для: cheops   (04.03.2009 в 17:24)
 

А phpmyadmin будет нормально видеть кодировку таблиц, установленную по умолчанию?

  Ответить  
 
 автор: cheops   (05.03.2009 в 05:30)   письмо автору
 
   для: Neiroromantik   (05.03.2009 в 04:07)
 

Да, если в таблице с определенной кодировкой, например cp1251 лежит текст в этой кодировке - phpMyAdmin будет отображать его правильно.

  Ответить  
Rambler's Top100
вверх

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