Page 1 of 1

Кракозябры в 1.6.6

Posted: Tue Dec 15, 2009 11:52 am
by rAlex
Чтобы долго не рассказывать покажу картинкой

Image

То есть при вставки ссылки на страницу получается вот такая вот шляпа.

Что делать?
Как быть?

p.s. хостинг мастерхост, в хтаксесс утф-8 прописан...

Re: Кракозябры в 1.6.6

Posted: Tue Dec 29, 2009 7:11 pm
by dimlevnik
В конфиге можно поставить, если нету
$config['locale'] = 'ru_RU.UTF8';
$config['default_encoding'] = 'utf-8';
$config['admin_encoding'] = 'utf-8';

Re: Кракозябры в 1.6.6

Posted: Thu Jan 14, 2010 7:38 am
by von-hamster
Это-же решает проблему с новостями (вывод в админке, и использование модификатора типа "%d %B %Y года, %R")

Re: Кракозябры в 1.6.6

Posted: Sun Feb 14, 2010 7:34 am
by legko
У меня такая же фигня, только сдается мне, что config.php здесь не причем.
Копать нужно ява скриптах в  Tiny MCE.

Re: Кракозябры в 1.6.6

Posted: Tue Feb 16, 2010 8:52 am
by 14m3r
У меня такая же проблема.

Image

Снял дамп, глянул в нём, там всё нормально, без каких либо кракозябр. По всей видимости, косяк в скрипте, который производит выбоку из базы. Знающие люди, подскажите, где происходит сие действие? Мне хотя бы название файлика, дальше я сам разберусь. ::)

Re: Кракозябры в 1.6.6

Posted: Tue Feb 16, 2010 12:29 pm
by legko
У меня ссылку вставляет правильно, только название страницы кракозябрами

Code: Select all

{cms_selflink page='alyuminij-sernokislyj' text='�л�миний �е�ноки�л�й'}

думаю, что руками подкорректировать несложно

А проблема в ява скрипте - данные он выдает в кодировке CP1252

Исходное слово: Алюминий сернокислый
при перекодировке из CP1252 → UTF-8 получается вот что:

Code: Select all

��л��миний ��е��ноки��л��й
Налицо неумение ява-скрипта понимать двухбайтовую кодировку.

Рыть нужно здесь по слову "cmslinker" (без кавычек):
\modules\TinyMCE\action.saveadvanced.php
\modules\TinyMCE\action.savetoolbar.php
\modules\TinyMCE\function.admin_advanced.php
\modules\TinyMCE\function.admin_toolbar.php
\modules\TinyMCE\TinyMCE.module.php


а дальше смотреть сами ява скрипты TinyMCE

Re: Кракозябры в 1.6.6

Posted: Wed Feb 24, 2010 1:31 pm
by leschenko
Та же проблема при создании новых папок на русском. И при загрузке файлов с русским названием. 
Так что конкретно делать то, подскажите для новичкаб пожалуйста.

Re: Кракозябры в 1.6.6

Posted: Fri Feb 26, 2010 12:00 am
by dexel
rAlex wrote: Чтобы долго не рассказывать покажу картинкой

Image

То есть при вставки ссылки на страницу получается вот такая вот шляпа.

Что делать?
Как быть?

p.s. хостинг мастерхост, в хтаксесс утф-8 прописан...
Это 100% причина в районе substr() -> mb_substr(xx, yy, zz, 'UTF-8'), там где визивиг эту навигащию формирует.
И не слушай тех, кто говорят что на уровне базы. Видишь там обрезание строки? Оно происходит на уровне PHP. И делается для UTF второй командой. А т.к. CMSMS мутировала с кодировки ISO-xx59, то и код не весь ещё ригхтонули под UTF.

Re: Кракозябры в 1.6.6

Posted: Thu Apr 29, 2010 2:04 pm
by Wing777
Решил эту проблему для 1.7 (TinyMCE 2.6.5):

1. Поиск и замена в \modules\TinyMCE всего, что связано с substr на mb_substr
2. замена htmlspecialchars(...,ENT_QUOTES) на htmlspecialchars(...,ENT_QUOTES, 'UTF-8') в нескольких местах в TinyMCE.module.php
3. перекодировать TinyMCE.module.php из ANSI в UTF-8 without BOM (может и не надо)
4. Очистить кэш в настройках системы, сбросить все настройки у TinyMCE (может и не надо)

Есть уже исправленный архив модуля, напишите в личку, не могу прикрепить, так как он больше 128Кб.

Re: Кракозябры в 1.6.6

Posted: Thu Sep 16, 2010 7:01 pm
by atiwac
Аналогичная проблема на 1.8.2. Неужели это дело до сих пор не пофиксили и надо решать вопрос методом Wing777? Такой «патчинг» исходников редактора не представляется особо приятной перспективой, особенно если задумываться о возможном обновлении CMS в будущем.

Re: Кракозябры в 1.6.6

Posted: Thu Sep 16, 2010 7:27 pm
by Wing777
Я делал небольшие сайты и там как-то все сводилось к редактированию исключительно файла TinyMCE.module.php (modules/TinyMCE), в общем вот модуль в архиве весь: http://depositfiles.com/files/4fv8xae3h
- у кого есть возможность залить на свой хостинг или сделать зеркало этого архива - было бы хорошо.


В "ветвистых" сайтах, когда название страницы длинное и большой уровень вложенности, еще такой баг: вместо названия многоточие "..." – тоже починено.

Отпишитесь плз, помогло или нет.

Re: Кракозябры в 1.6.6

Posted: Thu Sep 16, 2010 8:10 pm
by atiwac
Ни файл TinyMCE.module.php, ни весь модуль из архива CMSMS 1.8.2 не приняла — видимо, есть там какой-то конфликт версий. Сравнив две версии файлов TinyMCE.module.php, внёс следующие изменения в оригинальный TinyMCE.module.php:
  • — замена функций substr() → mb_substr(); substr_count() → mb_substr_count();
  • — добавление третьего параметра к вышеупомянутым функциям — 'UTF-8';
  • — добавление параметра 'UTF-8' к функциям htmlspecialchars() и htmlentities().
Всё стало работать корректно.

Выкладывать обновлённый файл считаю бессмысленным — с выходом новых версий меняется API, а соответственно и файлы модулей. Значит этот файл с большой долей вероятности не будет работать на старших версиях CMSMS.

Спасибо за помощь.