На заглавную  |  Контактная информация и обратная связь  |  Поиск    Главная  |  Статьи  |  Downloads  |  Форум  |  FAQ  |  Версия для КПК   December 11 2017 19:15:26  
WEB Design & PHP перейти на главную Статьи Ответы на часто задаваемые вопросы Загрузки Форум
PHP-Fusion Украинская поддержка Статьи Ответы на часто задаваемые вопросы Загрузки Форум
 
 Навигация
Новости
Статьи

FAQ
Поиск

Учебник по HTML
Карта сайта
Ссылки
Обратная связь


Альтернативная карта сайта
RSS новости
Версия для КПК
 
 Спонсоры проекта

Синельниковский информационно-развлекательный портал



Кондиционеры в Киеве


 
 Рассылка новостей
Только для зарегистрированных пользователей
 
 Ваш IP адрес
54.221.136.62
 
 Рекомендуем посетить
 
 Загрузки
Новые файлы
Professional Download ...
База игр
Мод "проверочный код +...
Мод "login redirect"
Мод "register.php + но...
Errors mod
unactivated users v3.0
Мод "index.php + мод п...
Мод "проверочный код в...
Менеджер смайлов
Переработанный плагин ...
Панель статистики (форум)
Гостевая книга
Панель "навигация + св...
Система баннеро-обмена
See bot info
Обновление для версии ...
PHP-Fusion 6.01.12
Руководство пользовате...
Обновление для версии ...

Toп 20 файлов
Колекция кнопочек, ука... [5497]
Плагин интернет магази... [4577]
Button Panel v1.0 [4198]
Professional Download ... [3752]
Black_Tomato [3695]
BlueIce-Skaidon [3648]
Карта сайта для PHP-Fu... [3626]
"Koмпьютерная" тема дл... [3622]
PHP-Fusion 6.01.12 [3457]
Панель "навигация + св... [3327]
Rss парсер для PHP-Fusion [3309]
slideshows_random_phot... [3163]
ZoneCopper [3103]
Руководство пользовате... [3100]
MP3 Архив v.2.0 [3094]
FT03 [3018]
F-Liquid [3014]
Голосование для всех (... [2945]
Работающий TinyMCE.. [2904]
Переработанный плагин ... [2813]
 
 Рекомендуем посетить
 
Для просмотра нажмите стрелку слева Кнопки партнеров
Регистрация и вход
 
 

Работа с кодировками

Кодировка базы данных (charset, collation) устанавливает режим работы с текстовой информацией в базе. Кодировка задается двумя параметрами: charset - набор кодов символов, рассматриваемых как текст, и collation - правило работы с этими символами (правила сортировки, сравнения, перевода регистров).

В mySQL 4 появилась возможность самостоятельно задавать кодировки для таблиц и даже для отдельных полей таблиц.

К сожалению, работа с разными кодировками в mySQL 4, 5 сделана не вполне удачно. Существует два основных способа как эти недоразумения обойти.

Работа с кодировкой по умолчанию

По умолчанию на большинстве хостингов установлена кодировка базы данных charset - latin1, collation - latin1_binary. При этом сравнение русских букв производится по их коду по номеру. Это позволяет делать следующее:

Главное: Этот режим совместим со всем ПО - старыми и новыми клиентами, mySQL Front, PHP клиентами, ODBC, и т.д., т.е. достигается максимальная совместимость со всем тем, что работало с mySQL 3х версий.
Хранение русских символов во всех режимах осуществляется правильно.
Сортировка русских символов осуществляется правильно, кроме буквы Ё (к сожалению).
К сожалению, регистро-независимое сравнение и преобразование регистров для русского алфавита в данном режиме не работает. Помните, это может привести к нерабочести приложений, которые на это рассчитаны!
Для того, чтобы воспользоваться этим режимом, вам не нужно вносить никаких изменений в код - просто создавайте базу и работайте как обычно.

Этот способ вполне подойдет людям, которым достаточно описанной функциональности, или в том случае, если решить проблемы, вызванные "корректной" работой с кодировкой, не удается.

Работа с правильной кодировкой (CP-1251)

Для работы с правильной кодировкой вам нужно с помощью средства управления базой, совместимого с mySQL 4 / 5, поменять кодировку таблиц. Удобнее это делать сразу после создания таблицы, чтобы поля унаследовали эту кодировку автоматом.
Внимание: не забывайте, что поменять кодировку таблицы после создания там полей недостаточно, убедитесь, что поля тоже имеют правильную кодировку!

Средства управления можно скачать с сайта www.mysql.com, например, mySQL Administrator.

Главное: Этот режим не до конца совместим с ПО, рассчитанным на работу с mySQL 3, таким, как mySQL Front и т.п., также не всегда получается нормально работать с клиентами - PHP, ODBC, и т.д. Если вместо русских букв вы видите знаки '?' - вы попали именно в такую ситуацию.
Большинство вопросов можно решить, воспользовавшись русскоязычными ресурсами по программированию, например, http://www.mysql.ru/.
Обычно достаточно следовать короткому совету (см. пояснение 1).
Хранение и обработка русских символов во всех режимах осуществляется правильно.
Внимание: практика показывает, что изменять charset и collation на таблице, которая уже имеет данные, бесполезно - вы получите '?' вместо русских символов.

пояснение 1: Обычно для правильной работы с кодировкой CP1251 достаточно дать следующие команды после соединения с базой (пример для PHP):

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

Напоследок:
Как ни крути, все вышесказаное не решит всех проблем кодировок mySQL 4. Количество средств программирования и способов использования базы слишком велико, чтобы описать каждый случай.

Практика показывает, что использование условно-правильного совместимого режима (latin1/latin1_binary), которое происходит по умолчанию, решает основную проблему работы с кодировкой (сортировку), и предоставляет хороший уровень обратной совместимости.

В случае продолжающихся проблем мы можем также рекомендовать вам обратится к вашему хост провайдеру, с просьбой предоставить вам возможность работать с базой mySQL 3.*, для которой по умолчанию, практически на всех хостингах установлена традиционная кодировка cp1251 (Windows). Но не стоит забывать, что в этом случае вам придется работать с текстами в кодировке cp1251.

 

Украинская Баннерная Сеть
 
 Категории новостей
Для просмотра нажмите стрелку слева Наш банер
RSS новости php fusion  Новости RSS
 Просьба...
Убедительная просьба!
Свои вопросы касательно
PHP-Fusion,
задавать в форум,
а не в миничат!

Миничат для флуда,
а если хотите получить ответ,
то к Вам убедительная просьба
- - - -

Пишите в форум!!!

 
Для просмотра нажмите стрелку слева 
Смена Темы
Нажмите (F5) для обновления
 Мини-чат
Вам необходимо залогиниться.

maf
06/06/2013 15:10
Зачем на амеров пинять - сами то что полезного сделали хоть раз? Или абы только потрындеть?

kot2007
18/05/2013 11:31
Почитав про USA http://www.php-fusion.co.
uk/news.php?readmore=572 , згадав про цей сайт... А тут вже все пилом припало і павутиною заросло smiley


maf
30/11/2012 00:33
? вам поговорить или проспамиться? ваша ссылка в ноиндексе ))

Dino
12/11/2012 23:47
Гых... народу, скажем, не густо %)

jikaka
13/02/2012 10:22
smiley

Архив чата
 
 Категории статей
 Последние статьи
Создание и раскрутка...
Шаблоны сайтов или о...
Как выбрать камеру в...
Устройство тем в Php...
Файл robots.txt и ег...
Выбор ключевых слов ...
Работа с кодировками
Индекс цитирования
PHP 5 -что изменилось?
 
 Партнеры проекта