|
||
Ответить | |
|
#1
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,302
Сказал(а) спасибо: 578
Спасибок 2,627
в 1,832 сообщениях |
Кракозябры или проблема с кодировкой -
16.03.2011, 23:37
Итак вы импортировали базу на форум, или просто установили форум на сервер, а у Вас там ?????????????????? или ещё что похлеще...
Существует последовательность определения своих действий:
Берем файл init.php с папки includes, находим там строчку (сразу после подключения): PHP код:
PHP код:
Другая ситуация - БД в ср1251, Мускул в utf-8. Берем все тот же init.php, находим ту самую строчку: PHP код:
PHP код:
Внимание: Ниже - для версии 3.8.х Найти: PHP код:
PHP код:
PHP код:
Внимание: Ниже - для версии 4.x Найти: PHP код:
PHP код:
PHP код:
P.S. Не забудьте заново перезагрузить языковый пакет (!) Что делать, если это мне не помогло? Самое главное мы сделали — отрегулировали всеобщую кодировку БД и vB. Но, если у Вас все же проблема отображения некорректных символов осталась, то следует "копать" уже в другую сторону. Последовательность действий:
Да, как оказалось, браузер может и не "почувствовать" изменения, которые Вы проводили. В таком случае, весь процесс отладки завершен лишь наполовину. Как пример: Имеется форум с параметрами кодировки — БД: Кодировка базы (utf-8), кодировка таблиц (utf-8), сопоставление MySQL (utf-8), языковая кодировка (utf-8). В браузере каким-то боком все выводится "кракозябрами". Смотрим кодировку, которую выбрал браузер и делаем ужасающее открытие — он отображает Вам страницу в кодировке ср1251. Что же делать? А следующее:
PHP код:
PHP код:
Данный метод решения — брутален. Но, полезен для тех, кто не может прочесть даже символы в админ-панели. Для тех, кому удалось перескочить на английский язык, предлагаю глобальное решение проблемы: Админ-панель — Языки и фразы — Управление языками — Редактировать настройки — Набор символов HTML — [выставить нужную кодировку] Есть еще варианты? Да, есть еще один вариант. Но, он скорее закрепляющий, а не кардинально меняющий кодировку. Посему, эффект от него не гарантирован. Попробуем использовать стандартную функцию файла config.php. Открываем данный файл и находим следующую строчку: PHP код:
PHP код:
PHP код:
Источник - http://vbsupport.org/forum/showthread.php?t=23843
Исправление и изменение кодировок MySQL Источник - http://habrahabr.ru/blogs/mysql/131869/ Самое плохое в неправильно настроенных кодировках — то, что зачастую проблему сложно обнаружить, и с первого взгляда может казаться, что сайт работает правильно, и никаких проблем нет. Небольшое отступление. Sypex Viewer В какой-то момент надоело отправлять людей в громоздкий phpMyAdmin, и была написана крошечная утилитка Sypex Viewer. Она представляет собой один PHP-файл, использует современные Web 2.0 технологии AJAX, JSON и другие. Основные задачи, которые ставилась при создании — минимальный вес, и максимальное удобство и скорость работы. В дальнейшем в примерах будут скриншоты из неё, но все те же действия можно сделать и в phpMyAdmin. Данные в cp1251 таблицы в latin1 Наверное, самая популярная проблема. Когда данные в кодировке cp1251 (utf-8), а у таблиц указана кодировка по умолчанию latin1. Такие ситуации возникают в следующих случаях:
Для преобразования нам понадобится Sypex Dumper.
Теперь рассмотрим более запущенный случай. Набирающая популярность в последнее время проблема, в связи с повальным увлечением UTF-8. Создатели софта стали переводить свои детища на UTF-8, но и тут не всё так гладко, как хотелось бы. Возникает проблема в основном в случае, когда у таблиц указана кодировка UTF-8, данные в UTF-8, но кодировка соединения установлена по умолчанию latin1 (типичный пример, vBulletin 4, хоть там и есть в конфигах настройка кодировки соединения, но она закомментирована по умолчанию). В результате в MySQL присылаются данные в UTF-8, но поскольку указана кодировка соединения latin1, то MySQL пытается преобразовать данные из latin1 в UTF-8. В итоге русские символы выглядят так: Ситуация более запущенная, но исправляется проблема почти также, как в первом случае, только в пункте 2 нужно выбрать кодировку latin1, а в пункте 6 нужно выбрать utf8 кодировку. Изменение кодировки Также часто встречающаяся проблема преобразования кодировки из cp1251 в UTF-8. До выполнения этого шага обязательно убедитесь, что русские символы у вас правильно показываются в Sypex Viewer или phpMyAdmin, если это не так, то предварительно исправьте кодировку. Итак, опять заходим в Sypex Dumper.
Не забываем, что после исправлений кодировки, нужно убедиться, что ваши скрипты используют правильную кодировку соединения (в принципе, это будет сразу видно, они будут неправильно показывать русские символы без нужной кодировки соединения). У некоторых она выставляется в настройках, в некоторых придется добавить самостоятельно. Для чего достаточно пройтись поиском по файлам, и найти где вызывается функция mysql_connect (или mysqli_connect). После этой строки нужно добавить строку которая укажет кодировку соединения. PHP код:
Не забывайте перед преобразованиями кодировок делать бэкап <!-- Вопросы задаем на форуме, не в ЛС --> |
#2
|
|
Вес репутации:
0
Регистрация: 24.05.2011
Сообщений: 36
Сказал(а) спасибо: 16
Спасибок 2
в 2 сообщениях |
31.07.2011, 15:11
очень помогло, вы меня спасли просто, спасибо!
|
#3
|
|
Вес репутации:
0
Регистрация: 28.10.2011
Сообщений: 15
Сказал(а) спасибо: 1
Спасибок 0
в 0 сообщениях |
29.10.2011, 13:10
Как определить кодировку мускула??
|
#4
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,302
Сказал(а) спасибо: 578
Спасибок 2,627
в 1,832 сообщениях |
29.10.2011, 13:18
Зайти в phpmyadmin и посмотреть, что за кодировка стоит напротив таблиц базы данных
|
#5
|
|
Вес репутации:
0
Регистрация: 28.10.2011
Сообщений: 15
Сказал(а) спасибо: 1
Спасибок 0
в 0 сообщениях |
29.10.2011, 13:30
Сопоставление соединения с MySQL: utf8_unicode_ci это??
Добавлено через 1 минуту а в самой тб в графе сравнение вот эта cp1251_general_ci Добавлено через 7 минут а все нашел кодировку мускула а кодировка тб где находится? |
#6
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,302
Сказал(а) спасибо: 578
Спасибок 2,627
в 1,832 сообщениях |
29.10.2011, 13:34
нет, именно там где графа сравнение - напротив таблиц - когда входим в саму базу
|
#7
|
|
Вес репутации:
0
Регистрация: 28.10.2011
Сообщений: 15
Сказал(а) спасибо: 1
Спасибок 0
в 0 сообщениях |
29.10.2011, 13:48
utf8_general_ci это кодировка таблицы??
нашел в тб в самом низу графы сравнение причем проблем когда я захожу просто на форум который на денвере нету все пашет а на хостинге нет какие то вопросики пишутся и таблиц нету |
#8
|
|
Вес репутации:
0
Регистрация: 27.02.2009
Адрес: Москва
Сообщений: 7,302
Сказал(а) спасибо: 578
Спасибок 2,627
в 1,832 сообщениях |
29.10.2011, 13:53
ну так пробуй в файл init.php из папки includes добавить
PHP код:
|
#9
|
|
Вес репутации:
0
Регистрация: 28.10.2011
Сообщений: 15
Сказал(а) спасибо: 1
Спасибок 0
в 0 сообщениях |
29.10.2011, 14:26
непомогло ладно ша все удалю на хосте и заного попробую
Добавлено через 13 минут Просмотр картинки nmaoibadirdecykjartzuwhkpmxgiu.png на хостинге изображений imagePost.ru вот сделал все но вот такие ошибки выдает Добавлено через 16 минут А все спасибо огромное за помошь очень признателен!!!) |
#10
|
|
Вес репутации:
0
Регистрация: 24.05.2012
Сообщений: 11
Сказал(а) спасибо: 5
Спасибок 0
в 0 сообщениях |
Re: Кракозябры или проблема с кодировкой -
23.02.2014, 20:27
Доброго времени всем, что то застопорился на этой проблеме. На форуме не отображается корректно заглавная И.
Пробовал осуществить вышеописанные действия, но что то ничего не меняется. Может я чего не так понимаю... На всякий случай сделал скрины из phpMyAdmin: А это база данных: Как я понял кодировка Мускула (MySQL), отличается от кодировки таблиц БД? Можно ли как то без переустановки движка обойтись? Буду очень благодарен за помощь. |
Ответить |
Опции темы | |
Опции просмотра | |
|
|