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

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
rAlex
Forum Members
Forum Members
Posts: 52
Joined: Tue May 26, 2009 9:59 am

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

Post by rAlex »

Чтобы долго не рассказывать покажу картинкой

Image

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

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

p.s. хостинг мастерхост, в хтаксесс утф-8 прописан...
WBR, rAlex
dimlevnik
New Member
New Member
Posts: 4
Joined: Sat Aug 15, 2009 11:32 am

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

Post by dimlevnik »

В конфиге можно поставить, если нету
$config['locale'] = 'ru_RU.UTF8';
$config['default_encoding'] = 'utf-8';
$config['admin_encoding'] = 'utf-8';
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

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

Post by von-hamster »

Это-же решает проблему с новостями (вывод в админке, и использование модификатора типа "%d %B %Y года, %R")
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

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

Post by legko »

У меня такая же фигня, только сдается мне, что config.php здесь не причем.
Копать нужно ява скриптах в  Tiny MCE.
14m3r

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

Post by 14m3r »

У меня такая же проблема.

Image

Снял дамп, глянул в нём, там всё нормально, без каких либо кракозябр. По всей видимости, косяк в скрипте, который производит выбоку из базы. Знающие люди, подскажите, где происходит сие действие? Мне хотя бы название файлика, дальше я сам разберусь. ::)
legko
Forum Members
Forum Members
Posts: 88
Joined: Sun Jan 10, 2010 1:54 am

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

Post 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
Last edited by legko on Tue Feb 16, 2010 12:40 pm, edited 1 time in total.
leschenko
New Member
New Member
Posts: 6
Joined: Tue Sep 22, 2009 12:18 pm

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

Post by leschenko »

Та же проблема при создании новых папок на русском. И при загрузке файлов с русским названием. 
Так что конкретно делать то, подскажите для новичкаб пожалуйста.
User avatar
dexel
Forum Members
Forum Members
Posts: 67
Joined: Sat Nov 29, 2008 12:22 pm
Location: Moscow

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

Post by dexel »

rAlex wrote: Чтобы долго не рассказывать покажу картинкой

Image

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

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

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

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

Post 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Кб.
atiwac
New Member
New Member
Posts: 2
Joined: Thu Feb 04, 2010 7:31 pm

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

Post by atiwac »

Аналогичная проблема на 1.8.2. Неужели это дело до сих пор не пофиксили и надо решать вопрос методом Wing777? Такой «патчинг» исходников редактора не представляется особо приятной перспективой, особенно если задумываться о возможном обновлении CMS в будущем.
Wing777
Forum Members
Forum Members
Posts: 18
Joined: Mon Mar 02, 2009 11:21 am

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

Post by Wing777 »

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


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

Отпишитесь плз, помогло или нет.
atiwac
New Member
New Member
Posts: 2
Joined: Thu Feb 04, 2010 7:31 pm

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

Post 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.

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

Return to “Russian - русский”