Кодировки…

Вопрос в первую очередь к Максу, но мнение остальных также выслушаю (прочитаю то есть) с удовольствием.
Мой блог на utf-8. Выгрузила на сервер, там cp1251. На сайте всё нормально, в phpmyadmin’е кракозяблы.
Как с этим бороться и чем это угрожает?
После того, как дописала две строчки в wp-db (как писал Макс), кракозяблы пошли и по сайту.
Тут ещё вот какое дело: в будущем планируется многоязычный сайт (украинский, польский, английский). Хочется чтобы переделывать пришлось по минимуму.
В принципе я не сторонник "религиозных войн" по поводу кодировки. Пока не поздно, могу перейти на cp1251. Но надо ли? Проблемы снимутся или их ещё больше будет?
Если не разбирусь с этим сейчас, потом это будет слишком сложно. Сайт будет обновляться каждый день (по несколько постов, а может и больше).
Надеюсь на ваше понимание. Это мой первый веб-проект, так что эти проблемы мне в новинку.

Я конечно не знаю какие строчки сказал тебе дописать Макс
НО кодировка самого БЛОГА и кодировка phpmyadmin совершенно не связаны имхо 😆
Чтобы в phpmyadmin были не крякозябры, просто при входе в него нужно выбрать кодировку
UTF-8 и все

Выбирала, а толку… Всё равно кракозяблы…

$wpdb->query("SET NAMES 'utf8'");
$wpdb->query("SET CHARACTER_SET_CLIENT='utf8'");

– я про эти строчки.
http://maxsite.org/ras10 – вот из этой статьи.

Вы вначале определитесь корректно ли поддерживается UTF8 в MySQL на сервере. Если версия старше, чем 4.1, то для многоязыковой поддержки нужно использовать UTF-8. Если же версия ниже, то могут возникнуть проблемы.

Предположим, что у вас всё нормально. В этом случае для правильного перехода с WINDOWS-1251 на UTF-8 вам следует обновить не только файлы WordPress, но и уже существующую базу данных (ссылочку вы привели верную). Сделайте дамп, конвертируйте его в UTF-8 и загрузите обратно. Процесс этот сложный, поэтому обязательно делайте бэкап.

Строчки "SET …" нужны только в случае если кодировка базы данных не согласуется с кодировкой блога. Всё дело в том, что MySQL может а) хранить данные в одной кодировке и б) "отдавать" данные в другой. Поэтому по-возможности, лучше использовать настройки сервера по-умолчанию. Мало ли какие "фичи" администратор хостинга придумает. 🙂

Что касается phpMyAdmin, то caBeHoK правильно сказал – отображение данных phpMyAdmin это еще не факт, что что-то не в порядке. Последние версии phpMyAdmin позволяют выставить сопоставление и отображение кодировки данных. Но, на самом деле вам это не нужно, если, конечно, вы не выполняете каких-то сложных операций или SQL-запросов.

У меня вордпресс с родного сайта, в utf-8. А база в cp1251, так phpmyadmin показывает. Я её не создавала, мне на хостинге дали её имя, пароль и тд. На сайте всё нормально, но боюсь, что будут проблемы при переходе на многоязычный сайт. А сейчас данные в базе не важны, то, что я там понаписывала, не нужно никому. Просто пытаюсь сейчас решить, стоит ли заморачиваться с кодировкой сейчас или нет. У Вас опыта побольше, вот и спрашиваю.

Мой блог на utf-8. Выгрузила на сервер, там cp1251. На сайте всё нормально, в phpmyadmin'е кракозяблы.

Если на сайте НОРМАЛЬНО значит MYSQL корректно читает кодировку! Нафик какие то SET если вопрос просто в кодировке в phpmyadmin :rolleyes:
Просто при входе в phpmyadmin укажи кодировку верную базы, т.е. UTF-8

P.S. на сервере не одна кодировка, точнее кодировку можно указать ЛЮБУЮ, хоть латиницу и все будет корректно, это вам не виндоус имхо 😆 учите матчасть

Я при входе указываю кодировку, phpmyadmin её игнорирует

Странно, тогда стоит обратиться к администратору скорее чем копать движок ибо повторяю, если у тебя на сайте
с кодировкой все нормально, значит с кодировкой проблем НЕТ по определению просто…. скорее всего криво настроен
сам phpmyadmin, я такое встречал и не раз у своих клиентов, приходилось руками переправлять. Если у тебя phpmyadmin
свой, т.е. ставила ты сама то я могу тебе подсказать как исправить или хотя бы узнать причину, если нет, то бей админа
только так.

Лично я ворпресс качал с официального сайта, нашел в интернете файлы русского и сейчас у меня сайт на 100% русский
я не знаю о какой WP тут идет речь, если переписаная кем-то, то советовал бы придерживаться официальных релизов, а
не поделки неких умелых ручек, хотя ничего против не имею конечно, но багов, ошибок и уязвимостей в таких поделках
проуентов на 30 больше как обычно.

Вот скриншоты моего phpmyadmin и базы вордпресса:
Скриншот 1 (вход в пхпадмин)
Скриншот 2 (смотрим содержание базы WP)

Макс, а разве Arien сказала "хочу чтобы мой блог научился писать в cp-1251" ? лично я не заметил 😆
покажи.. вопрос в пхпмайадмине как я понял из первого поста темы, при чем тут версия mysql скажи?

Вордпресс с родного сайта ([url]www.wordpress.org[/url]), украинизация написана мной по методу Макса (через wp-language.php). Но Вордпресс уже не совсем оригинальный, я чуть движок переписывала (не только тему), но тут кодировка ни при чём, я там ничего не трогала. А MySQL 4.1 с копейками (кажется 4.1.21). phpmyadmin конечно не я ставила, кто ж меня пустит 🙂

Блин, сообщение старое по ошибке стер… Ладно, в целом смысл понятен :).

caBeHoK Я так понял, что человек хочет использовать мультиязычный блог. Поэтому нужно использовать UTF-8. Чтобы корректно использовать юникод желательно иметь версию не ниже 4.1, поскольку только здесь будет работать команда SET.

Arien. Ваши действия очень просты. В файл wp-db.php в самом конце сразу после

$wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);

напишите

$wpdb->query("SET NAMES 'utf8'");
$wpdb->query("SET CHARACTER_SET_CLIENT='utf8'");

Сделать это нужно перед инсталяцией. В этом случае вы настроете MySQL на работу с UTF-8. Если же вы сделате это после инсталяции, то все данные будут неверно отображены, поскольку хранились в CP-1251. В принципе можно сделать и позже, но вам придется в админке менять все русские записи заново. Включая и названия рубрик, ссылок и всё прочее.

Что касается phpMyAdmin, то не тратьте на него время. Скорее всего на сервере стоит не самая последняя версия, которая котому же настроена одинаково для всех, поэтому там и используется привычная Win-1251. Если вам нужно поработать с базой напрямую, то проще поставить плагин WP-DBManager.

Добавила строчки, которые сказал Макс, и снесла все таблицы. Переустановила ВП. Теперь читается всё нормально и в блоге, и в phpmyadmin’е. Но phpmyadmin всё равно показывает кодировку cp1251_general_ci. Если я всё так и оставлю, в будущем будут проблемы при интернацционализации сайта?

Нет, всё будет нормально. В phpMyAdmin по-идее должен быть выбор отображения данных. Прямо на главной странице. Если его нет или выбор невозможен, значит таковы настройки на сервере самого phpMyAdmin. Это не страшно.

Спасибо. Надеюсь что потом всё будет нормально и даные перекодировать не придётся.

Anonymous
Отправить
Ответ на: