Искать  
 
   
1 из 2
1
Проблема: UTF-8 и EE 1.6.6
Отправлено: 01 Декабрь 2008 05:54 P.M.   [ Игнорировать ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Не как не могу заставить EE 1.6.6 отображать корректно русские буквы в UTF-8 кодировке :(
Что я сделал:
1. в файле .htaccess строчка AddDefaultCharset utf-8
2. в файле db.mysql строчки
      $this->query(“SET NAMES ‘utf8’”);
      $this->query(“SET CHARACTER SET utf8”);
      $this->query(“SET COLLATION_CONNECTION=utf8_general_ci”);

пробовал так же использовать одну строчку: $this->query(“SET NAMES ‘utf8’”);

Итого: сайт вообще не загружается. Можете заценить сами

ввв.sanikovich.com 

Если выполнить только первый пункт, то сайт нормально пускается и в админке русские буквы прописываются, но в myPHPadmin русские русские буквы корректно не отображаются :( Пример на рисунке.

P.S. На версиях 1,6,3 и 1,6,4 подобных проблем с русификацией не возникало.

Приложения с изображениями
Untitled-1.jpg
Профиль
 
 
Отправлено: 01 Декабрь 2008 09:02 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

здесь описаны операции, которые проделывает юзверь, попробуй проделать то же самое
http://eeclub.ru/forum/viewthread/556/

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 02 Декабрь 2008 12:19 A.M.   [ Игнорировать ]   [ # 2 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

У меня тоже самое было. Просто убери строчки, которые касаются mysql. Т.е. добавь только в .htaccess строчку и все будет в норме

Профиль
 
 
Отправлено: 02 Декабрь 2008 01:00 A.M.   [ Игнорировать ]   [ # 3 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

Посмотрите например через пхпАдмин точно ли у вас БД в UTF-8

Профиль
 
 
Отправлено: 03 Декабрь 2008 02:23 A.M.   [ Игнорировать ]   [ # 4 ]
Member
Avatar
RankRankRank
Всего сообщений:  153
Зарегистрирован  2008-08-19

Я с этим уже встречался. Надо исправлять БД.

Мой метод восстановления кодировки следующий:
Качаем замечательную утилиту для создания бэкапа: http://sypex.net/files/SypexDumperLite_108.zip
1) Делаем этот бэкап и откладываем его в сторону. Это на тот случай если ничего с исправлением БД не выйдет. (лучше скачать именно себе на комп)
2) Меняем режим считывания БД (кодировку) на latin1. Как это сделаеть:
—для этого открываем скачанный файл dumper.php в блокноте и ищем строку #40:

define('CHARSET''auto'); 

меняем ее на:

define('CHARSET''latin1'); 

3) Делаем бэкам в этом новом режиме. Dumper будет ругаться красненьким цветом на кодировку, но отработать должен как надо.
4) Меняем режим записи БД (кодировку) на ту, которая нам нужна (utf8):
—для этого ищем строку #45:

define('RESTORE_CHARSET''cp1251'); 

меняем ее на:

define('RESTORE_CHARSET''utf8'); 

5) Записываем считанную БД (в пункте) в этом новом режиме.
6) Заходим в phpmyadmin, смотрим что все стало на сови места. Но пока не радуемся.  cheese
7) Сайт перестал работать - это нормально. Фиксим так:
—открываем файл: /system/db/db.mysql.php . ищем строку:

$this->server_info = @mysql_get_server_info(); 

добавляем после:

// Denik encoding fix
mysql_query("SET NAMES utf8"); 

(с комментарием smile)

8) Радуемся!

У каждого додика своя методика  cheese
PS: Для точности своей методики все пункты во время написания проделал на хом-сервере smile
PS2: Не знаю почему платная ЦМС-ка сделала такие баги с кодировкой! НЕ зачёт  cool grin

Профиль
 
 
Отправлено: 03 Декабрь 2008 06:44 A.M.   [ Игнорировать ]   [ # 5 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

ЕЕ ставит кодировку баз автоматически - в зависимости от настроек сервера, так что просто надо взять в привычку mysql настраивать правильно smile
Хотя надо сказать, что есть некоторые минусы в обработки зарубежных символов. Вроде UTF-8, но в промежутках(для создания тех же урлов) они работают с ISO-8859-5, где есть только спец. символы стран западной европы. Кириллице нет как класса(ограничения mbstring). Но, слава богу, я за 4 года с таким ограничением встретился только раз, и то - тут на форуме. smile
p.s. В багах на форуме ЕЕ уже подняли дискуссию на это тему.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 03 Декабрь 2008 04:41 P.M.   [ Игнорировать ]   [ # 6 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Дорогие господа, товарищи, братья! У меня уже руки опустились.  :( не могу понять, почему после того, как я добавляю дополнительную запись в db.mysql.php, из преложенных выше, у меня перестает грузится сайт.
Что делать?! Посоветуете!

Версия Apache   2.2.10 (Unix)
Версия PHP   5.2.6
Версия MySQL   5.0.67-community-log

Профиль
 
 
Отправлено: 03 Декабрь 2008 04:44 P.M.   [ Игнорировать ]   [ # 7 ]
Member
Avatar
RankRankRank
Всего сообщений:  153
Зарегистрирован  2008-08-19

я ж описал все по пунктам. пока не проделаешь 1-6 пунты, на 8-й перепрыгивать нельзя и не получится))

Профиль
 
 
Отправлено: 03 Декабрь 2008 04:47 P.M.   [ Игнорировать ]   [ # 8 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

Предлагаю еще такой вариант:
Заходиш в БД, таблица exp_sites там настройки сайта, ищеш где у тебя русские буквы, например - s:4:”сайт”
s:4 это длина строки, берешь считаеш буквы и умножаеш на два, должно быть - s:8:”сайт”

Профиль
 
 
Отправлено: 04 Декабрь 2008 10:59 A.M.   [ Игнорировать ]   [ # 9 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Объясните нубу, а если я пытаюсь установить систему с нуля, почему я не могу пропустить первые шесть пунктов и просто добавить строчку кодировки в db.mysql?!

Если добавляю строчку $this->query(“SET NAMES ‘utf8’”);

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/............../system/db/db.mysql.php on line 389
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home//............../system/db/db.mysql.php on line 397

Если же mysql_query(“SET NAMES utf8”);, то установка проходит, но сайт не грузится :(

Все сделал как вы посоветовали. Но сам факт добавления строек с указанием кодировки в db.mysql, делает сайт не запускаемым.

Профиль
 
 
Отправлено: 04 Декабрь 2008 03:23 P.M.   [ Игнорировать ]   [ # 10 ]
Member
Avatar
RankRankRank
Всего сообщений:  153
Зарегистрирован  2008-08-19

кодировка на первом посту в скриншоте от твоей текущей установки?
т.е. ты над ней бъешься и ничего не пашет? - Значит БД уже создана и пропускать пункты 1-6 нельзя. Ты их выполнял вообще?

Профиль
 
 
Отправлено: 04 Декабрь 2008 05:21 P.M.   [ Игнорировать ]   [ # 11 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
memex - 04 Декабрь 2008 10:59 A.M.

Объясните нубу, а если я пытаюсь установить систему с нуля, почему я не могу пропустить первые шесть пунктов и просто добавить строчку кодировки в db.mysql?!

Если добавляю строчку $this->query(“SET NAMES ‘utf8’”);

Зачем тебе добавлять строчку если ты уже ставиш например на базу в utf8 ? она уже автоматом будет в utf8

Профиль
 
 
Отправлено: 04 Декабрь 2008 06:11 P.M.   [ Игнорировать ]   [ # 12 ]
Member
Avatar
RankRankRank
Всего сообщений:  325
Зарегистрирован  2008-06-16

сам сталкивался с этой проблемой... Теперь перед установкой новой инсталяции я на сервер вношу файлик .htaccess со строкой AddDefaultCharset utf-8 - всё пашет без проблем. Потом, для удобства, включаю русский язык (так же utf-8) и только после этого создаю запись с использованием русского языка.

Да, бывает что всё тоже самое делаешь, а не выходит - есть ещё вариант настройки php, MySQL и Апача... да, можно для проверки поставить новую инсталяцию, например, на timeweb и всё сразу станет понятно.

 Подпись 

Всё что делается - не всё нами принимается...

Профиль
 
 
Отправлено: 08 Декабрь 2008 10:19 A.M.   [ Игнорировать ]   [ # 13 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Итого, подведу итог моих изысканий.
Устанавливал EE 1.6.6, без каких-либо изменений db.mysql. Добавил только строчку в .htaccess - AddDefaultCharset utf-8.
И что получаем. В админке и на сайте все прекрасно отображается на русском языку.  Только вот почему-то в phpMyAdmin русские буквы не отображаются. У кого какие предположения?

p.s. База данных в utf8_general_ci.

Приложения с изображениями
Resize of Untitled-1.jpg
Профиль
 
 
Отправлено: 08 Декабрь 2008 10:33 A.M.   [ Игнорировать ]   [ # 14 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

а на самой главной странице phpMyAdmin конект с БД в какой кодировке? в db.mysql думаю нада все таки строчку прописать

Профиль
 
 
Отправлено: 08 Декабрь 2008 11:28 A.M.   [ Игнорировать ]   [ # 15 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Добавил строчку в  $this->query(“SET NAMES ‘utf8’”); Т.е. получается, что все изменения в db.mysql, нужно делать после настройки EE.
Хотя, мне кажется, что я так же и делал в предыдущие разы.

P.S. Все огромное спасибо за помшь в решении моей проблемы.

Профиль
 
 
   
1 из 2
1