В продолжение "Неправильно отображается UTF-8 из SSI.php"

Автор Shaman, 01 апреля 2015, 10:36:10

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

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

Shaman

Так как мне не удалось написать ответ в тему Неправильно отображается UTF-8 из SSI.php, опубликую его тут, так как для этого специально и регистрировался.

Это будет памятка мне самому и всем, кто столкнётся с такой же проблемой. Я убил на её решение 4 часа, пока не наткнулся в процессе поиска на подходящее решение и не перепробовал свои собственные варианты.

Суть проблемы в том, что на некоторых серверах при использовании SSI.php и кодировки UTF-8 сообщения и темы выводятся в виде [?????????] ???????? от User

Решение, предложенное в обсуждении, заключается в том, чтобы дописать в файл /etc/my.cnf следующие параметры:

default-character-set=utf8
init_connect='SET NAMES utf8'


и перезагрузить mysql. Однако, у меня mysql с этими параметрами отказался загружаться - очевидно, данная запись мне не подошла.

Однако, на моём сервере уже присутствовала другая запись:

character-set-server = utf8

и проблема была решена добавлением строки

init_connect='SET NAMES utf8'.

На локальном сервере AMPPS под Windows, чтобы исправить проблему, я добавил в my.ini обе строки:

character-set-server = utf8
init_connect='SET NAMES utf8'


На этом проблема была решена.

Удачи!

Sp

Этот способ не помог.
На этом форуме тоже есть проблемы
http://www.simplemachines.ru/ssi_examples.php
http://www.simplemachines.ru/ssi_examples.php?view=home1
Весь текст в крякобразах.

Как это исправить?
У меня такие же проблемы.

kak2z

Цитата: Sp от 24 мая 2015, 01:04:44
Этот способ не помог.
На этом форуме тоже есть проблемы
http://www.simplemachines.ru/ssi_examples.php
http://www.simplemachines.ru/ssi_examples.php?view=home1
Весь текст в крякобразах.

Как это исправить?
У меня такие же проблемы.
на этом форуме нет проблемы.. в браузере кодировку поменяйте на ютф8 и все будет отображаться..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Yarik

Цитата: Sp от 24 мая 2015, 01:04:44
На этом форуме тоже есть проблемы
http://www.simplemachines.ru/ssi_examples.php
http://www.simplemachines.ru/ssi_examples.php?view=home1
Весь текст в крякобразах.

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

Сапожник

Ты видишь суслика? И я нет, а он есть. ...  8)

Пс. У себя на форуме зашел, все норально.
Пс2 не нашел в мобильном браузере возможность сменить кодировку
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

Sp

Цитата: kak2z от 24 мая 2015, 08:16:20
на этом форуме нет проблемы.. в браузере кодировку поменяйте на ютф8 и все будет отображаться..

Браузер сам должен определять кодировку, если сайт её отдает правильно.
В данном случае сайт не оттает правильно кодировку.
Поэтому возникает проблема.
Проблема есть и её нужно решить.

Yarik

Цитата: Sp от 24 мая 2015, 11:32:47
Браузер сам должен определять кодировку, если сайт её отдает правильно.
В данном случае сайт не оттает правильно кодировку.
Поэтому возникает проблема.
Проблема есть и её нужно решить.
У меня только опера 12.17 автоматом определила

Mavn

ну на самом деле проблема не конкретно в нашем форуме, а в том что в ssi_examples.php не указывается кодировка страницы
решается все добавлением строки

<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />

в функцию function template_ssi_above
а вообще проблема с кодировкой на самом форуме если она есть решается через переменную $db_character_set в Settings.php
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Sp

Цитата: Mavn от 03 июня 2015, 16:26:23

<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />


Откуда параметр character_set тянет кодировку?
Из какого файла?

Mavn

index.russian(-utf8).php тут прописывается кодировка
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

estranhoru

Цитата: Mavn от 07 июня 2015, 11:40:23index.russian(-utf8).php тут прописывается кодировка
каким образом?
$txt['lang_character_set'] = 'UTF-8';
но крякозябры имеют место быть

grinat

Решение без дергания mysql. В начале ssi после инициализации бд пишем:
$request = $smcFunc['db_query']('', 'SET NAMES utf8 COLLATE utf8_general_ci');таким образом будет выполнен запрос к mysql который установит соединение в utf-8

Вот так это выглядит:


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

digger®

Цитата: grinat от 06 июля 2016, 18:58:32Решение без дергания mysql. В начале ssi после инициализации бд пишем:
$request = $smcFunc['db_query']('', 'SET NAMES utf8 COLLATE utf8_general_ci');таким образом будет выполнен запрос к mysql который установит соединение в utf-8

Вот так это выглядит:


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

А не поможет просто сделать в начале SSI.php
global $db_character_set
Там где вы свой код добавили, следом идет вызов функции reloadSettings(), в которой уже есть такой же код.