Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Проблема с кодировкой при обновлении с 2.2.1 до 3.2.3

Приветствую.

Такая проблема, после обновления с 2.2.1 до 3.2.3 все русские буквы кракозябрами

 

scsh_120116-112359.jpg

 

Как видно на скриншоте загадочным образом названия разделов и тем отображаются нормально.

В исходном коде страницы прописано в мета charset=windows-1251. Когда прописываю в conf-global.php

 

$INFO['sql_charset']            =    'utf8';

 

то в meta кодировка конечно же меняется на utf8 но картина следующая:

 

scsh_120116-112814.jpg

 

таким образом форум работает только без строчки

$INFO['sql_charset']

. Изначально в conf-global.php строчки

$INFO['mysql_codepage']

не было, я так понимаю она появилась в 2.3.х.

Базу конвертировал скриптом от Ritsuka.

 

Заранее большое спасибо за любую помощь.

Изменено пользователем Alexander Alyokhin

Рекомендованные сообщения

  • Автор

какие то чудеса, ей Богу... только что в очередной раз все делал заново, решил попробовать не 3.2.3 а 3.1.2. сконвертил базу, теперь все отлично 100% - все таблицы после апгрейда utf8_general_ci, посты сохранились на русском, все ок. захожу на форум - ромбики. но теперь если выставить в браузере cp1251 то все буквы становятся видны. честно говоря я в смятении.

 

второе - если вписать в conf_global

 

$INFO['sql_charset']            =    'utf8';

 

вылазит ошибка Fatal error: Uncaught exception 'Exception' with message 'Не удалось инициализировать регистр, кеш настроек либо пуст, либо испорчен'

в файле ipsRegistry.php on line 1858

 

:blink:

Изменено пользователем Alexander Alyokhin

кеш настроек либо пуст, либо испорчен

Ну опять он про кэш настроек. Вы вообще кэш перестраивали?

Влияет только на отображение символов в браузере.

О чем речь.

  • Автор

Ну опять он про кэш настроек. Вы вообще кэш перестраивали?

 

наощупь добрался до этого пункта - перестроил. ошибка осталась. честно говоря мне непонятно как может ипб работать если текст на самом деле в cp1251. и при этом в пхпмайадмин - ютф и текст читается. коллапс.

честно говоря не знаю что делать уже) может есть смысл обновиться сначала на промежуточную версию какую то до 3.х?

Изменено пользователем Alexander Alyokhin

но теперь если выставить в браузере cp1251 то все буквы становятся видны

Это говорит о том, что данные в таблице не конвертируются в utf-8. Читаемость в phpmyadmin-е не показатель. Проверьте сначала на простом скрипте, укажите явно кодировку через SET NAMES, и в htaccess добавьте тоже AddDefaultCharset

 

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET character_set_connection = utf8");
mysql_query("SET collation_connection = utf8_general_ci");

$res = mysql_query('SELECT * FROM ibf_posts LIMIT 1');
while( $row = mysql_fetch_assoc( $res ) )
{
  print_r( $row );
}

  • Автор

Это говорит о том, что данные в таблице не конвертируются в utf-8. Читаемость в phpmyadmin-е не показатель. Проверьте сначала на простом скрипте, укажите явно кодировку через SET NAMES, и в htaccess добавьте тоже AddDefaultCharset

 

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET character_set_connection = utf8");
mysql_query("SET collation_connection = utf8_general_ci");

$res = mysql_query('SELECT * FROM ibf_posts LIMIT 1');
while( $row = mysql_fetch_assoc( $res ) )
{
  print_r( $row );
}

 

MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("SET NAMES 'utf8'")' at line 1 

  • Автор

возьму на себя смелость спросить если ли еще какие нибудь предположения или можно забить на это дело?)

Если php от sql не отличаете, не знаю что еще тут можно посоветовать.

  • Автор

Если php от sql не отличаете, не знаю что еще тут можно посоветовать.

 

знаний php и sql мне действительно катастрофически не хватает. теперь буду знать что все это необходимо знать, для того чтобы обновить форум. но спасибо что постебались, да и за участие тоже спасибо.

Изменено пользователем Alexander Alyokhin

постебались

Просто сложно помочь человеку без минимальных знаний по теме, не сделав всё за него. Ищите профессионала, пусть настроит.

  • Автор

Просто сложно помочь человеку без минимальных знаний по теме, не сделав всё за него. Ищите профессионала, пусть настроит.

 

знания есть более чем минимальные, то что я запарился это не повод брызгать желчью тут) ну и из того что я писал здесь можно сделать поверхностный вывод об уровне знаний. скрипт я сам не напишу с нуля, но чтобы обновить форум того что я знаю достаточно. просто ситуация мягко говоря нестандартная.

Изменено пользователем Alexander Alyokhin

то что я запарился это не повод брызгать желчью тут

Никто не брызгает, я пытаюсь сказать, что смотреть на это всё надо лично своими глазами и делать своими руками. Через форум тут вряд ли разберешься.

  • Автор

Никто не брызгает, я пытаюсь сказать, что смотреть на это всё надо лично своими глазами и делать своими руками. Через форум тут вряд ли разберешься.

 

это было не в ваш адрес :)пардон. а то что своими руками возможно так и есть, уж очень как то все тяжко получается. сегодня один человек сказал что дамп сам в ютф снимается изначально, хотя кодировка то 1251 естественно.. возможно в этом проблема? но я правда сколько раз пробовал через sxd конвертировать, т.е. я не скармливал дамп который сам снимал майадмином.. уж он то я думаю нормально работать должен. вобщем ситуация крайне непонятная мне.

Изменено пользователем Alexander Alyokhin

Сам долго мучался с кодировками и конвертациями, но все решилось очень просто, указание на один неочевидный момент нашел на этом форуме.

Последовательность действий была такова:

1. Конвертация базы с помощью скрипта от ritsuka

2. Изменение conf_global.php (добавление $INFO['sql_charset']= 'utf8'; удаление 1251)

3. Обновление форума по инструкции.

 

Основная тонкость которая попортила мне кучу нервов это то что пункт 2 нужно выполнять ОБЯЗАТЕЛЬНО ДО обновления, иначе проблемы с кодировкой

  • Автор

Kapralez, спасибо за ответ. Только что повторил все действия. Но все равно в мета - charset=windows-1251, и браузер выбирает ее естественно автоматом. В conf_global $INFO['sql_charset']='utf8'. Если ручками выставить юникод - все ок

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.