Важно: для новых баз данныхСоздание баз данных происходит с кодировкой по умолчанию CP1251 / CP1251_general_ci. Сайты на PHP 5, созданные после 1 декабря 2007 года, работают с этой кодировкой без дополнительной настройки. Дальнейшая информация в статье имеет отношение к более старым сайтам нашего хостинга, а также к другим mySQL клиентам, с которыми вы можете встретиться на нашем хостинге или в собственных приложениях. Для баз существующих клиентов (до декабря 2007 года) или сайтов на PHP 4Кодировка базы данных (charset, collation) устанавливает режим работы с текстовой информацией в базе. Кодировка задается двумя параметрами: charset - набор кодов символов, рассматриваемых как текст, и collation - правило работы с этими символами (правила сортировки, сравнения, перевода регистров). В mySQL 4 появилась возможность самостоятельно задавать кодировки для таблиц и даже для отдельных полей таблиц. К сожалению, работа с разными кодировками в mySQL 4, 5 сделана не вполне удачно. Мы можем предложить два способа работы. Работа с кодировкой по умолчанию По умолчанию на нашем хостинге установлен charset - latin1, collation - latin1_binary. Сравнение кириллических букв производится по их коду по номеру. Это позволяет делать следующее:
Для того, чтобы воспользоваться этим режимом, вам не нужно вносить никаких изменений в код - просто создавайте базу и работайте как обычно. Этот способ вполне подойдет людям, которым достаточно описанной функциональности, или в том случае, если решить проблемы, вызванные "корректной" работой с кодировкой, не удается. Работа с правильной кодировкой (CP-1251) Для работы с правильной кодировкой вам нужно с помощью средства управления базой, совместимого с mySQL 5, поменять кодировку таблиц. Удобнее это делать сразу после создания таблицы, чтобы поля унаследовали эту кодировку автоматом. Средства управления можно скачать с сайта www.mysql.com, например, mySQL Administrator.
Внимание: практика показывает, что изменять charset и collation на таблице, которая уже имеет данные, бесполезно - вы получите '?' вместо кириллических символов. Примечание 1: Обычно для правильной работы с кодировкой CP1251 достаточно дать следующие команды после соединения с базой (пример для PHP): mysql_query ("set character_set_client='cp1251'"); Примечание 2: Для ODBC драйвера для mySQL к строке подключения необходимо дописать следующий параметр: stmt=SET NAMES 'cp1251' Дополнительная информация К сожалению, служба поддержки не может оказывать помощь по решению проблем кодировок mySQL 4. Количество средств программирования и способов использования базы слишком велико, чтобы описать каждый случай. Практика показывает, что использование условно-правильного совместимого режима (latin1/latin1_binary), которое происходит по умолчанию, решает основную проблему работы с кодировкой (сортировку), и предоставляет хороший уровень обратной совместимости. В случае продолжающихся проблем мы можем также рекомендовать вам пользоваться базой mySQL 3.*, для которой на нашем хостинге установлена традиционная кодировка cp1251 (Windows). Однако помните, что в этом случае вам придется работать с текстами в кодировке cp1251. Хотите стать клиентом нашего хостинга?
Попробуйте наши услуги и сервис.
Тестовый период до 10 дней, регистрация занимает всего одну минуту. Будем рады видеть вас нашим клиентом! |
Все разделы и статьи
|