Показать сообщение отдельно

  #2  
Старый 11.11.2006, 01:56
africanec
Banned
Регистрация: 11.09.2005
Сообщений: 254
Провел на форуме:
1002567

Репутация: -12
Отправить сообщение для africanec с помощью ICQ
По умолчанию

Если Вам необходимо хранить в базе данных строки в кодировке, отличной от английской, то придется немного разобраться с кодировками - дело достаточно тонкое и не совсем тривиальное.

Итак, по умолчанию для всех обьектов базы устанавливается кодировка latin1, и если в поле с такой кодировкой запихнуть русские данные, то вместо символов Вы будете видеть знаки вопроса. Для избежания данной проблемы достаточно установить при создании базы нужную Вам кодировку:

CREATE DATABASE yourbase CHARACTER SET ‘cp1251′

в этом случае все поля по умолчанию будут иметь именну эту кодировку, если при создании базы или поля не указать иную. Тоесть, при создании базы с нуля достаточно укзать ее кодировку и все будет нормально.
Но если Вы модифицируете уже созданную ранее базу, то изменение ее кодировки не приведет к изменению кодировок уже созданных полей - их придется менять вручную, посредством следующей комманды:

ALTER TABLE students CHANGE name name varchar(100) CHARACTER SET ‘cp1251′

Типы полей надо оставить прежними, нужно только изменить кодировку(CHARACTER SET).

Для корректной работы с кодировками осталась одна вещь - после установления соединения необходимо указать требуемую кодировку с помощью запроса:

SET NAMES cp1251;

Кстати, полный список кодировок, которые поддерживает Ваш сервер, можно получить с помощью комманды

SHOW CHARACTER SET;
----------------------------
это надо или я нетак понял?