Obormot
Постоялец
- Регистрация
- 10 Янв 2012
- Сообщения
- 88
- Реакции
- 2
- Автор темы
- #1
Уже 3тий день воюю с кодировками в базе, замучался окончательно.
Сначала был проблема только с выводом букв ш и и теперь выявились еще косяки.
Теперь по порядку:
Сам скрипт осуществляет вывод страниц в кодировке UTF-8:
При инсталяции скрипт загружает дамп БД с такими параметрами:
под каждой таблицей в дампе:
Все, отлично скрипт установили, теперь направляемся в БД через phpmyadmin, там спрашиваем:
Получаем ответ:
В переводе я понимаю так:
Как так ?? Откуда взялась кодировка cp1251 или что это вообще??
я вообще ничего не понимаю.
- что за фигня Откуда взялась еще кодировка какая то.. Что касается по скрипту, то классы подключения к БД не нашел, искал по файлам скрипта по запросам: "SET NAMES", так же искал слова "cp1251" "windows-1251" (думал он где нибуд перегоняте как-то) - ничего не нашел. По запросу mysql_connect намека на кодировки нет.
Сначала был проблема только с выводом букв ш и и теперь выявились еще косяки.
Теперь по порядку:
Сам скрипт осуществляет вывод страниц в кодировке UTF-8:
Код:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Код:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";;
ALTER DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;;
Код:
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=%%__CONTESTS_INC__%% ;;
Код:
SHOW VARIABLES LIKE 'character_set%';
Код:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
- character_set_client — указывает, в какой кодировке будут поступать данные от клиента;
- character_set_connection — указывает, в какую кодировку следует преобразовать данные полученые от клиента перед выполнением запроса;
- collation_connection — указывает, каким образом сравнивать между собой строки в запросах;
- character_set_results — указывает серверу не необходимость перекодировать результаты запроса в определенную кодировку перед выдачей их клиенту.
Пока вроде все замечательно - скрипт должен записывать данные в БД в UTF-8, забирать данные так же в UTF-8, и выводить на свои страницы которые так же в UTF-8 !!
Теперь начинается самое интересное.
Идем в админку скрипта, меняем например заголовок страницы с Main на "Главная", сохраняем, идем в БД , а там:
Код:
Главная
Дальше еще интереснее. Меняем в ручную в базе заголовк на "Главная", сохраняем, теперь в базе все ок! Идем на главную страницу скрипта а там:
Код:
�������
Регистрируемся, получаем письмо на почту (смотрим кодировку шаблона письма в скрипте - UTF-8)! В письме есть инклуд меню сайта, соответтвенно при формировании письма скрипт берет данные из базы. Меню скрипта так же содержится в базе и так же изменяется из админки, меняем пунк меню из админки с "Home" на "Главная", в базе получаем все теже Сервис , но в письме этот пункт меню уже выглядит так:
Код:
ÐлавнаÑ
И это все еще дополняет кривые буквы Ш и и. ВОт так.
Прошу помочь дабы не сойти с ума : )