VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Скажу сразу же, что пересмотрел весь форум и не нашёл такой проблемы как у меня.
Дело вот в чём:
Поставил форум в БД с кодировкой cp1251, а на форуме одни вопросительные знаки.
В БД всё корректно отображается.
На хосте сказали:
Для того чтобы текст написанный в кодировке CP-1251, отображался правильно на вашем сайте, а не виде вопросов, достаточно вписать в скрипте который вы используете для вашего сайта следующие команды после соединения с базой данных :
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
Собственно вопрос, куда именно надо вписать ?
Спасибо
Andruha добавил 06.02.2006 в 17:34
Неужели никто не поможет ?
Andruha добавил 06.02.2006 в 20:31
Я разобрался сам.
В файле class_core.php после строки:
$this->connection_write = $this->db_connect($w_servername, $w_port, $w_username, $w_password, $w_usepconnect, $configfile, $charset);
Добавил:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
И всё стало на свои места.
Last edited by Andruha : 02-06-2006 at 09:31 PM.
Reason: Добавлено сообщение
@IVB
Знаток
Join Date: Dec 2005
Posts: 98
Версия vB: 3.6.x
Пол:
Reputation:
Knowing 114
Репутация в разделе: 18
3
Я, кажется, нашел первопричину этой проблемы и способ ее устранения:
В файле class_core.php, в классе vB_Database_MySQLi есть процедура db_connect с таким куском кода:
PHP Code:
if (!empty($charset))
{
if (function_exists('mysqli_set_charset'))
{
mysqli_set_charset($link, $charset);
}
else
{
$this->sql = "SET NAMES $charset";
$this->execute_query(true, $link);
}
}
Как показали эксперименты - в установленной на моем серваке версии php (5.1.4) процедура mysqli_set_charset существует, но отрабатывает некорректно. После комментирования части кода:
(т.е. не проверять наличие процедуры mysqli_set_charset и не использовать ее, а использовать SET NAMES) все переменные в MySQL (character_set_* и collation_*) устанавливаются правильно.
Кто общается с разработчиками - подскажите им, пожалуйста, отказаться от использования mysqli_set_charset.
А предлагаемая мною правка универсальна для любого чарсета - не только cp1251.
@ZeldoR
Продвинутый
Join Date: Nov 2007
Location: то тут то там
Posts: 122
Версия vB: 3.7.0
Reputation:
Опытный 24
Репутация в разделе: 17
0
Привет, после переезда с сервера на mchost такаяже проблемма одни вопросительные знаки ???
Версия движка 3.6.8
Загружаю дамп с помощью Sypex Dumper
после загрузки выдаёт Установлена кодировка соединения `latin1`.
По результату запроса SHOW VARIABLES LIKE 'character_set%'; выдаёт
Добавлено через 4 часа 34 минуты
помогите пожалуйста кто сталкивался с этой проблеммой
Last edited by ZeldoR : 03-13-2008 at 10:41 PM.
Reason: Добавлено сообщение
@alegator
Продвинутый
Join Date: Oct 2006
Location: Germany
Posts: 101
Версия vB: 3.8.4
Reputation:
Опытный 19
Репутация в разделе: 19
0
в config.php
// ****** MySQLI OPTIONS *****
// When using MySQL 4.1+, MySQLi should be used to connect to the database.
// If you need to set the default connection charset because your database
// is using a charset other than latin1, you can set the charset here.
// If you don't set the charset to be the same as your database, you
// may receive collation errors. Ignore this setting unless you
// are sure you need to use it.
// $config['Mysqli']['charset'] = 'cp1251'
@ZeldoR
Продвинутый
Join Date: Nov 2007
Location: то тут то там
Posts: 122
Версия vB: 3.7.0
Reputation:
Опытный 24
Репутация в разделе: 17
0
привет спасибо за совет но если база в ut8 то этот прикол не действует.
@apokich
Простоузер
Join Date: Feb 2007
Location: asteam.ru
Posts: 141
Reputation:
Novice 2
Репутация в разделе: 1
0
Спасибо!!! Помогло!
@Crypt
Продвинутый
Join Date: Nov 2006
Posts: 79
Версия vB: 3.8.2
Reputation:
Опытный 19
Репутация в разделе: 14
0
Andruha, Спасибо огромное! Столько способов перепробовал, замучался просто, а это помогло =)