Перейти к публикации
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

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

Опубликовано:

@Alexander Alyokhin, не надо путать кодировку MySQL и кодировку Apache

Опубликовано:

System setting - System- Server Environment - Document character set что написано? надо UTF-8

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

  • 1 месяц спустя...
Опубликовано:

У меня аналогичная проблема.

Переносил форум с 2-ой ветки в третью.

 

Конфиг файл не хочет принимать параметр utf8 ($INFO['sql_charset'] = 'utf8';) за то стабильно берет latin1 и cp1251

 

У меня весь сайт в знаках вопроса (кроме дизайна)

 

Если sql_charset убрать, и провести ручной запрос с админки получаю

 

Результаты ручного запроса

Variable_name Value

character_set_client latin1

character_set_connection latin1

character_set_database utf8

character_set_filesystem binary

character_set_results latin1

character_set_server latin1

character_set_system utf8

character_sets_dir /usr/share/mysql/charsets/

 

Если вписать cp1251 то

character_set_client cp1251

character_set_connection cp1251

character_set_database utf8

character_set_filesystem binary

character_set_results cp1251

character_set_server latin1

character_set_system utf8

 

А при прописки utf8 форум выдает ошибку... такую же как и человечка выше.

 

Да еще такой вопрос...

в /usr/share/mysql/charsets/ должен ли быть файл типа utf8.xml (ибо латин1 или сп1251 и другие присутствуют, но нет utf8)

Опубликовано:

Неправильно конвертировались бд, или не в утф8. Попробуйте сейчас переконвертировать данные в utf8, именно данные не просто сменив сравнение у таблиц. Если не получится, восстанавливайте бэкап, конвертируйте его если не в utf8 и выполните еще раз обновление, обязательно убедившись что в conf_global.php установлено $INFO['sql_charset'] = 'utf8';

 

Если sql_charset убрать, и провести ручной запрос с админки получаю

http://ipbskins.ru/forum/topic5756.html/page__view__findpost__p__62462

Опубликовано:

БЛин...

МОжет я что пропустил.

Из старой 2.3 я слил базу.

Открыл ее в блокноте

в свойствах выбрал utf-8

сохранил.

 

В новое место влил...

Запустил скрипт

<?php
include("conf_global.php");
$dbhost = $INFO['sql_host'];
$dbuser = $INFO['sql_user'];
$dbpass = $INFO['sql_pass'];
$dbname = $INFO['sql_database'];
header('Content-type: text/plain');
$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die( mysql_error() );
$db = mysql_select_db($dbname) or die( mysql_error() );
$sql = "ALTER DATABASE `".$dbname."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
$result = mysql_query($sql) or die( mysql_error() );
print "Database changed to UTF-8.\n";
$sql = 'SHOW TABLES';
$result = mysql_query($sql) or die( mysql_error() );
while ( $row = mysql_fetch_row($result) ){
$table = mysql_real_escape_string($row[0]);
$sql = "ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci, CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci";
mysql_query($sql) or die( mysql_error() );
print "$table changed to UTF-8.\n";
}
mysql_close($dbconn);
?>

 

потом начал делать обновление admin/update

и все в вопросах

Опубликовано:

Открыл ее в блокноте

в свойствах выбрал utf-8

сохранил.

Запустил скрипт

Не знаю умеет ли блокнот конвертировать данные или нет, но делать надо одним из вариантов а не конвертировать 10 раз подряд. Проще делать скриптом.

 

Потом:

обязательно убедившись что в conf_global.php установлено $INFO['sql_charset'] = 'utf8';

запускаете обновление.

  • 2 месяца спустя...
Опубликовано:

Привет всем! Имеется специфическая проблемка... обновился до 3.3.3 и заимел проблемку.

Изначально базу в виндовс поставили... Но я указал утф-8.

А если в локализации проблема с " И" ? где и что менять?

40c2f4f13f47.png

При поиске слов на "И" в языке вываливается ошибка

"There appears to be an error with the database.

If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again.".

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

Сейчас на странице 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.