Проблемы с кодировкой "Перейти в"

Автор alsak, 31 декабря 2009, 11:44:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

alsak

Установлена SMF 2.0 RC2. Были проблемы с русскими буквами в названии месяца, но нашел на форуме - исправил.
Сегодня заметил, что если нажать "Перейти в", то название раздела форума, в котором нахожусь отображается нормально, а остальные разделы и подразделы отображаются ��.
Что можно сделать?
Возможно, это уже обсуждалось, но найти через поиск не смог.

0daliska

#1
Использовать нормальный редактор, позволяющий сохранять файлы в нужной кодировке... Notepad++

PS: Зашла к Вам на форум и только тогда поняла про что Вы...
Речь идет о списке разделов формируемых в раскрывающемся списке перейти...
Форум в кодировке charset=ru_RU.CP1251
А база, наверное, utf-8???

Гляньте вот здесь:
http://www.simplemachines.ru/index.php?topic=1376.msg8562#msg8562
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

alsak

#2
Спасибо за помощь. И с Новым Годом вас.
Цитата: 0daliska от 31 декабря 2009, 14:17:17
Форум в кодировке charset=ru_RU.CP1251
А база, наверное, utf-8???
А где можно посмотреть кодировку базы? Использую phpMyAdmin.
Добавляю снимок проблемы.

0daliska

Цитата: alsak от 31 декабря 2009, 17:35:20
Спасибо за помощь. И с Новым Годом вас.А где можно посмотреть кодировку базы? Использую phpMyAdmin.
Добавляю снимок проблемы.

Цитата: 0daliska от 31 декабря 2009, 14:17:17
Гляньте вот здесь:
http://www.simplemachines.ru/index.php?topic=1376.msg8562#msg8562

Мавн очень хорошо все описал... Почитайте!!!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

alsak_admin

Цитата: 0daliska от 01 января 2010, 00:48:53Мавн очень хорошо все описал... Почитайте!!!
Здравствуйте. Я админ http://www.alsak.ru/ по техническим вопросам.

Крутил базу данных и так, и этак, как написано в рекомендациях. Не помогло. Однако заметил 2 особенности.

1) Выпадающий список "Перейти в" работает на JavaScript. Там формируется дополнительный запрос "на лету" (AJAX). При отключенном JS списка нету.
2) В первый раз я недостаточно сконвертировал sql-файл бэкапа и у меня получился весь форум с "вопросиками", но зато выпадающий список стал формироваться очень даже читаемым. Все последующие разы форум был читаемым, но в "перейти" показывались вопросики.  Как это объяснить и что делать - ума не приложу.


alsak_admin

Цитата: digger от 02 января 2010, 21:45:04
В настройках форума в Русский язык зайдите и посмотрите чего там понакручено.

Язык форума по умолчанию: Russian.
windows-1251
локаль ru_RU.CP1251

Пользователи могут также выбрать English с кодировкой ISO-8859-1.

Что не так?

digger®

Цитата: alsak_admin от 02 января 2010, 21:55:58
Язык форума по умолчанию: Russian.
windows-1251
локаль ru_RU.CP1251

Пользователи могут также выбрать English с кодировкой ISO-8859-1.

Что не так?

Судя по тому что в заголовках страниц написано charset=ru_RU.CP1251, у вас кодировка и локаль местами перепутаны.

alsak_admin

Цитата: digger от 02 января 2010, 22:02:38
у вас кодировка и локаль местами перепутаны.
Возможно, но это настройки по умолчанию. Мы их не меняли на сайте.

vladok

Перепроверьте, там действительно криво - кажет чарсет неверно.
<meta http-equiv="Content-Type" content="text/html; charset=ru_RU.CP1251" />
Харе кришна, май либер зольдат...

alsak_admin

После долгих трудов удалось сделать.

Нашел в \cache\ файл lang_index+Modifications_russian_core.php, а там 2 строчки (№№ 25-25):

// Ensure you remember to use uppercase for character set strings.
$txt['lang_character_set'] = 'ru_RU.CP1251';


и заменил вторую на:
$txt['lang_character_set'] = 'windows-1251';

После чего заработало правильно. Видимо, это баг SMF: 2.0 RC2.0, который надо бы исправить...

И не в БД дело.

alsak_admin

Напишите кто-нибудь багрепорт, я на http://dev.simplemachines.ru/index.php?project=13 даже зарегистрироваться не могу, а пароль отсюда тоже не годится.

digger®

Цитата: alsak_admin от 03 января 2010, 17:34:44
После долгих трудов удалось сделать.

Нашел в \cache\ файл lang_index+Modifications_russian_core.php, а там 2 строчки (№№ 25-25):

// Ensure you remember to use uppercase for character set strings.
$txt['lang_character_set'] = 'ru_RU.CP1251';


и заменил вторую на:
$txt['lang_character_set'] = 'windows-1251';

После чего заработало правильно.

В кэше без толку что-то править.

alsak_admin

Цитата: digger от 03 января 2010, 17:42:36
В кэше без толку что-то править.
Возможно, но главное, что теперь направление исправления стало понятным.

А эти файлы созданы 15 декабря, когда и ставил форум. Если ошибка вернется - буду искать оригинальную переменную. Просто их много и не понятно, в каком месте ее менять. А везде менять пока не хочется.

digger®

Цитата: alsak_admin от 03 января 2010, 17:51:06
Возможно, но главное, что теперь направление исправления стало понятным.

А эти файлы созданы 15 декабря, когда и ставил форум. Если ошибка вернется - буду искать оригинальную переменную. Просто их много и не понятно, в каком месте ее менять. А везде менять пока не хочется.

В админке, в свойствах языка это задается. Не зачем вручную править какие-либо переменные.

alsak_admin

Теперь нашел. Исправил локаль на windows-1251. Хотя кодировка стояла правильно.