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

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

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

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

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

Ž вместо ю и ž вместо о

Вчера обновил форум с 2.3.6 на 3.4.1, разумеется попутно сконвертировав базу данных известным в местных кругах скриптом.

Всё прошло гладко, но по каким-то неведомым мне причинам, форум начал заменять в новых сообщениях, в правилах форума и в других местах русские буквы ю и О на Ž и ž соответственно. Весь остальной текст - нормальный, именно эти две буквы. Откуда они могли появиться и почему я никак не могу понять.

Стиль - Less (http://www.skinbox.net/skins/less/).

Русификация -

 

Буду очень признателен за помощь в исправлении этой дурацкой ошибки.

Спасибо.

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

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

  • Автор

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

В сообщениях их не видно, потому что:

1) Модератор правит ошибки;

2) Это возникает только в новых сообщениях. Те, что были перенесены из 2.3.6 - нормальные.

 

На самом же деле они очень даже есть.

 

В базе все сообщения выглядят как "<p>#1090;#1088;#1086;#1083;#1086;#1083" ... и т.д. только со значком & перед каждым из кодов (убрал, иначе конвертятся в текст).

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

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

  • Автор

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

 

Локаль:

[root@ts code]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

 

Все таблицы - в utf8_general_ci.

Вот данные из ACP - Поддержка - SQL System Vars:

character_set_client		utf8	
character_set_connection		utf8	
character_set_database		utf8	
character_set_filesystem		binary	
character_set_results		utf8	
character_set_server		utf8	
character_set_system		utf8	
collation_connection		utf8_general_ci	
collation_database		utf8_unicode_ci	
collation_server		utf8_general_ci	
init_connect		set names utf8	

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

  • Автор

Вы будете смеяться...

 

Пришлось в режиме дебага, по очереди перед каждой строчкой каждого класса проставить var_dump (); и die ();, чтобы обнаружить, что вся конвертация происходит в зависимости от проверки переменной функцией:

 

if ( IPS_IS_UTF8 !== true )
	{
		$content = $this->_cakeAndEatIt( $content );
	}

Ну и соответственно понять, что дело в параметре "Document character set" в настройках системы, раздел Server Environment.

 

У меня он был "utf8". Стоило мне поменять его на "utf-8", всё заработало.

 

Разумеется, мой косяк, что не проэкспериментировал с этим, но... По-моему можно было предсказать вероятность ввода utf8 вместо utf-8.

 

В общем, дело в одном дефисе. Вот так-то.

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

Аккаунт

Навигация

Поиск

Поиск

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

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