Если Вам необходимо хранить в базе данных строки в кодировке, отличной от английской, то придется немного разобраться с кодировками - дело достаточно тонкое и не совсем тривиальное.
Итак, по умолчанию для всех обьектов базы устанавливается кодировка 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;
10 Комментариев
отзыв
24|May|2006 1полностью надо определять все что неопределено
mysql_query(”SET NAMES ‘utf8′”);
mysql_query(”SET collation_connection=’utf8_general_ci’”);
mysql_query(”SET collation_server=’utf8_general_ci’”);
mysql_query(”SET character_set_client=’utf8′”);
mysql_query(”SET character_set_connection=’utf8′”);
mysql_query(”SET character_set_results=’utf8′”);
mysql_query(”SET character_set_server=’utf8′”);
Кодировка в MySQL at <ё> YoYurec Field </ё>
31|Oct|2006 2[...] Вот оно! Наконец-то нашёл решение проблемы с кодировками. При переносе дампа из mysql3.х mysql4.х почему-то были одни вопросики вместо русских буковок. Добавьте на news2.ru [...]
4matic
12|Jan|2007 3>полностью надо определять все что неопределено
Не надо. Достаточно SET NAMES и SET CHARACTER SET.
Вадим
05|Feb|2007 4Блин а у меня аж 180 таблиц? в каждой куча полей и что для всего этого нужно вручную все менять? А есть способ получше?
15|Feb|2007 5
, .
19|Feb|2007 6
, , , : .
749b78
23|Feb|2007 7! ?
af0b0b
27|Feb|2007 8, . , , udalitemenya@gmail.ru .
Nestor
01|May|2007 9На форумах этот вопрос поднимается очень часто. Важно, что указывать кодировку нужно дважды - при создании базы, и в дальнейшем при подключении.
pcbsd
07|Nov|2007 10Заметка хорошая, но немного не полная. SET character_set… надо обязательно делать.
Оставьте отзыв
Search
Последние комментарии
Облачко
Игры Интернет Киев Киевстар МТС Утел батарея блоги жЫзнь мобильное пробки траффик укртелеком 3G adobe air adsl Apache Asus CDMA E51 Gizmo gmail GPRS GSM ide Log nintendo Nokia php PlayStation Plesk Plugins PocketPC rss ruby svitonline voIP WiFi WordPressКатегории
Календарик
Спонсорские линки
Я читаю
A design creation of Design Disease
Copyright 2008 - ТолиБлог
Powered by WordPress - Web hosting Services by Wordpress Theme, Archived by WPT