Разделы

Кодировка в админке

Есть сервер и база с такими настройками:
show variables like "char%":

character_set_client	latin1
character_set_connection	latin1
character_set_database	latin1
character_set_filesystem	binary
character_set_results	latin1
character_set_server	utf8
character_set_system	utf8

Проблема в следующем — когда заливаю дамп в utf8, на сайте все отображается нормально, а в админке русские буквы в ресурсах отображаются в кривой кодировке, причем тексты админки видны нормально.
В чем может быть дело?
  • 0
  • 14 декабря 2011, 16:05
  • w3d

Комментарии (13)

RSS свернуть / развернуть
0
>> в админке русские буквы в ресурсах отображаются в кривой кодировке, причем тексты админки видны нормально.
А в дампе ресурсы действительно в utf8?

В любом случае универсально посоветую использовать Sypex Dumper (версия Lite бесплатна). Сделать бэкап, поправить (дописать DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci для каждой таблицы) и залить обратно.
avatar

AlexKostin

  • 14 декабря 2011, 20:19
0
Ну и в config.inc.php конечно же
$database_connection_charset = 'utf8';
Если Evo — заменить
$database_connection_method = ‘SET CHARACTER SET’;
на
$database_connection_method = ‘SET NAMES’;
avatar

AlexKostin

  • 14 декабря 2011, 20:31
0
@AlexKostin, привет!

У меня такая же проблема, вот вид из админки

Дамп я заливаю вот какой:
DROP TABLE IF EXISTS `OS_access_context`;
CREATE TABLE IF NOT EXISTS `OS_access_context` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `target` varchar(100) NOT NULL DEFAULT '',
  `principal_class` varchar(100) NOT NULL DEFAULT 'modPrincipal',
  `principal` int(10) unsigned NOT NULL DEFAULT '0',
  `authority` int(10) unsigned NOT NULL DEFAULT '9999',
  `policy` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `target` (`target`),
  KEY `principal_class` (`principal_class`),
  KEY `principal` (`principal`),
  KEY `authority` (`authority`),
  KEY `policy` (`policy`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=8 ;


Настройки канфига вот:
<?php
/**
 *  MODX Configuration file1
 */
$database_type = 'mysql';
$database_server = 'localhost';
$database_user = 'rsssootssss';
$database_password = 'rsssootssssrsssootssss';
$database_connection_charset = 'utf8';
$dbase = 'OS';
$table_prefix = 'OS_';
$database_dsn = 'mysql:host=localhost;dbname=OS;charset=utf8';


Не понимаю в чем проблема)) Подскажеш куда глянуть?

Кстати, это уже вторая база которую я пытаюсь прицепить. На этой в конце листинга таблиц мускул показывает:
65 tables 	Sum 	1,962 	MyISAM 	latin1_swedish_ci 	1.2 MiB 	0 B


это
latin1_swedish_ci
он сам создал и я это не правил, а пробывал поправить в другой базе на
utf8_general_ci
не помогло.

Кто то побеждал такое? 8-)

И кстати где есть и зависит ли настройка $database_connection_method = ‘SET NAMES’; в рево?
avatar

dmitry_modx_customize

  • 17 января 2012, 14:30
0
Сорри, что не сразу — вообще случайно сюда зашёл.

Таблица в дампе нормально создаётся, config.inc.php тоже корректный, а вот сами данные видимо не в UTF-8. Такое может быть, если сам файл с дампом в другой кодировке.
В принципе, легко проверить — откройте таблицу modx_site_content, в колонках pagetitle, longtitle, description, introtext и content текст после импорта должен отображаться на русском языке — например, pagetitle -> «DПРМCD» (Кодировка страницы в браузере должна быть UTF-8). Или там текст в виде "&# 1055"?

>в конце листинга таблиц мускул показывает… latin1_swedish_ci
Это Collation по умолчанию для всей базы. Перед импортом поменяйте — в phpmyadmin выберите базу (не таблицу), Operations → Collation → utf8_general_c i→ Go

> Кто то побеждал такое? 8-)
Если есть читаемый дамп, то всё 100% решается. Проблема, если текст в виде "???? ??? ?????????????" в любой кодировке.
avatar

AlexKostin

  • 29 января 2012, 10:58
0
Привет! Спасибо.

>>Или там текст в виде "&# 1055"?
Да, прикинь пишет туда такое))

Попробую ченить отпишу, по-моему с Operations → Collation → utf8_general_c i всеравно одно и тоже пишет))

Заново пробую тогда
avatar

dmitry_modx_customize

  • 30 января 2012, 19:42
0
Погодите-ка, а что сейчас выдаёт запрос
show variables like "char%"
Должно быть:
character_set_client		utf8
character_set_connection	utf8
character_set_database		utf8
character_set_results		utf8
character_set_system		utf8

2. В core/cache/system_settings/config.cache
'modx_charset' => 'UTF-8' (раздел: Словарь и язык/Кодировка символов)?

3. В дампе, что Вы хотите заливать на базу должен быть читаемый текст. Т.е. «DПРМCD» уже в текстовом файле. Тогда и в базе будет читаемый текст.

4. Если Вы руками набиваете текст «DПРМCD» в контенте, в phpmyadmin Вы его так же видете?
avatar

AlexKostin

  • 31 января 2012, 09:30
0
Привет

Спасибо тебе!

1.SHOW VARIABLES LIKE «char%»
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

2. ALTER DATABASE `your_database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

3. SHOW VARIABLES LIKE «char%»
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets

Что то character_set_server latin1 мне не нравится?? В этом проблема? Как это изменить я может и соображу если погугю-вопрос это необходимо?
avatar

dmitry_modx_customize

  • 31 января 2012, 18:46
0
Вощем такие дела пишу в заголовок ЫЦКУЙ он в базу толкает коды этих символов
avatar

dmitry_modx_customize

  • 31 января 2012, 18:50
комментарий был удален

0
такие дела- пишу в тайтл ЫЙЛОДЖ а он в базу толкает коды символов))

core/cache/system_settings/config.cache тут не кешируется такой параметр
avatar

dmitry_modx_customize

  • 31 января 2012, 19:08
0
Знаете, мне удалось таки это повторить! Долго смеялся. Оказалось, всё не то чтобы просто, а просто до невозможного. :)

Сначала вопрос — а почему у Вас всё-таки админка MODx не на русском языке? По-моему правильнее держать админку в том языке, на котором будет контент. ИМХО, конечно.

В общем такой фокус происходит, если кодировка страницы в браузере iso-8859-1 (западноевропейская). Если бы админка была на русском такой проблемы просто бы не могло случиться — попробуйте сменить кодировку — это ужас какой-то.

Но опыт интересный. Можно подшутить над любителями «англоязычных» админок. :)
avatar

AlexKostin

  • 31 января 2012, 21:16
0
<Если есть читаемый дамп, то всё 100% решается. Проблема, если текст в виде "???? ??? ?????????????" в любой кодировке.>
Вот и есть такая проблема!
1. Создал базу в utf8_general_ci
2. Установил систему.
3. Если в админке прописываю заголовок сайта русскими буквами, например: просто, то получаю ??????…
Полез разбираться! База почему-то оказалась в latin1_swedish_ci…
4. Сменил на utf8_general_ci в админке все по прежнему.…
Естественно Язык системы управления: Russian-UTF8, а Кодировка: Unicode (UTF-8) — utf-8
P/s. Система Evo 1.0.5
Что делать честно говоря фантазии не хватает =(…
avatar

raphael

  • 6 февраля 2012, 21:47
0
В общем поставил Revo и все без проблем… =)
avatar

raphael

  • 7 февраля 2012, 12:28

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.