Важливо: для нових баз данихСтворення баз даних відбувається з кодуванням за замовчуванням 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 4/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 днів, реєстрація займає всього одну хвилину. Будемо раді бачити вас нашим клієнтом! |
Усі розділи та статті
|