SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.03.2009 12:14:46

Neiroromantik
Участник
Зарегистрирован: 04.03.2009
Сообщений: 2

Проблема с кодировкой

Добрый день! Возникли проблемы с кодировкой в mysql. Скриптом php заношу в базу данных текстовые поля. Затем Добрый день! Возникли проблемы с кодировкой в 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, но данные с русскими буквами не заносились ни через команд лайн клиент, ни через скрипт.
Воостановление из дампа с указанием русской кодировки тоже не дало результата.
  Помогите, пожайлуста. Второй день мучаюсь с этой кодировкой!

Неактивен

 

#2 04.03.2009 17:52:14

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблема с кодировкой

Таблицы нужно создавать в той кодировке, в которой Вы хотите хранить данные.

Получать и записывать данные можно в любой кодировке, при этом обязательно нужно указывать
SET NAMES <кодировка> с указанием нужной кодировки.

Кодировка консоли windows - cp866, а не cp1251.
--
Если можете себе позволить снести данные — снесите и восстановите заново, добавив в сценарий
восстановления в начале строку SET NAMES <кодировка данных в файле>.

Неактивен

 

#3 05.03.2009 05:35:04

Neiroromantik
Участник
Зарегистрирован: 04.03.2009
Сообщений: 2

Re: Проблема с кодировкой

А как создать сценарий воссттановления, не понял о чем идет речь, я дамп делал, затем его восстанавливал с указанием кодировки cp1251. Но mysql написал"mysql: Character set 'cp1251' is not a complied character set and is not specified in the 'C:\mysql\\share\charsets\Index.xml' file ". Ладно, подсовываю ему  файлы с указанным расположением, дамп восстанавливается.
Смотрю кодировку базы  SHOW VARIABLES LIKE 'ch%'; - показывает cp1251, но кодировка соединения latin1 - в таблице русские буквы, занесенные через скрипт, выглядят беспорядочным набором русских символов.
  Пишу set names cp1251 - , затем снова  SHOW VARIABLES LIKE 'ch%'; все установлено в сp1251, кроме character_set_server, character_set_system, character_set_file system. В таблице вместо русских символов знаки вопроса.
  Как бороться?

Неактивен

 

#4 05.03.2009 14:31:21

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблема с кодировкой

В начале дампа напишите «SET NAMES cp1251;»

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson