Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Проблема с кодировкой при обновлении с 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'. Если ручками выставить юникод - все ок

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.