Студия креативных разработок DevArt.PRO.
Разработка сайтов и форумов под ключ!
Сильнейшая команда в России по vBulletin - читать подробнее...
 
 
 
 

 
 
Здесь скоро опять что то будет...
 
 
 
 
 
 
Loading

Вернуться   форум vBSupport.org > Вопрос — Ответ > Вопрос — Ответ

Объявления
  • Изменения в правах
  • Каталог Фрилансеров
  • Добро пожаловать!
  • Premoderation
  • Новичкам!
  • For English speaking users
Ответ
 
Опции темы Опции просмотра
Старый 06.02.2006, 00:15   #1
Простоузер
Question Проблема с кодировкой

Всем привет.

Скажу сразу же, что пересмотрел весь форум и не нашёл такой проблемы как у меня.
Дело вот в чём:

Поставил форум в БД с кодировкой 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'");

Собственно вопрос, куда именно надо вписать ?
Спасибо
  Ответить с цитированием
Рекламка
Реклама на форуме
Старый 06.02.2006, 05:27   #2
Azureus
Продвинутый
В исходном коде страницы какая кодировка? (в самом почти верху)
  Ответить с цитированием
Старый 06.02.2006, 20:31   #3
Andruha
Простоузер
Код:
<html dir="ltr" lang="ru">
<head>
	<!-- no cache headers -->
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Expires" content="-1" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<!-- end no cache headers -->
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="generator" content="????? 3.5.2" />

	
<meta name="keywords" content="?????,???????,?????????" />
<meta name="description" content="?????, ?? ??????? ??????????? ??? ?? ?????." />
Вот он.
Но мне кажется дело не в этом :(

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'");

И всё стало на свои места.

Последний раз редактировалось Andruha; 06.02.2006 в 20:31.. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.11.2006, 12:48   #4
IVB
Знаток
 
Аватар для IVB
Я, кажется, нашел первопричину этой проблемы и способ ее устранения:

В файле class_core.php, в классе vB_Database_MySQLi есть процедура db_connect с таким куском кода:

PHP код:
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 существует, но отрабатывает некорректно. После комментирования части кода:

PHP код:
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);
        
//}

(т.е. не проверять наличие процедуры mysqli_set_charset и не использовать ее, а использовать SET NAMES) все переменные в MySQL (character_set_* и collation_*) устанавливаются правильно.

Кто общается с разработчиками - подскажите им, пожалуйста, отказаться от использования mysqli_set_charset.

А предлагаемая мною правка универсальна для любого чарсета - не только cp1251.
  Ответить с цитированием
Старый 13.03.2008, 17:06   #5
ZeldoR
Продвинутый
 
Аватар для ZeldoR
Привет, после переезда с сервера на mchost такаяже проблемма одни вопросительные знаки ???

Версия движка 3.6.8
Загружаю дамп с помощью Sypex Dumper
после загрузки выдаёт Установлена кодировка соединения `latin1`.



По результату запроса SHOW VARIABLES LIKE 'character_set%'; выдаёт

character_set_client utf8
character_set_connection utf8
character_set_database cp1251
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8


Помогите пожалуйтса

Добавлено через 4 часа 34 минуты
помогите пожалуйста кто сталкивался с этой проблеммой

Последний раз редактировалось ZeldoR; 13.03.2008 в 21:41.. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.03.2008, 04:18   #6
alegator
Продвинутый
в 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'
  Ответить с цитированием
Старый 16.03.2008, 03:32   #7
ZeldoR
Продвинутый
 
Аватар для ZeldoR
привет спасибо за совет но если база в ut8 то этот прикол не действует.
  Ответить с цитированием
Старый 19.03.2008, 22:15   #8
apokich
Простоузер
Спасибо!!! Помогло!
  Ответить с цитированием
Старый 01.07.2008, 21:41   #9
Crypt
Продвинутый
 
Аватар для Crypt
Andruha, Спасибо огромное! Столько способов перепробовал, замучался просто, а это помогло =)
  Ответить с цитированием
Ответ

Закладки

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



 
 

Текущее время: 17:40 25.05.2012. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.0.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd. Перевод: zCarot