1 (изменено: Hase, 2013-06-27 20:28:36)

Тема: Кодировка.

У меня на сайте идет подключение к БД до вывода контента, в том числе и до вывода мета-тегов. При ошибке подключения выводится ошибка в таком виде:

2002 Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. Пожалуйста, сообщите администратору!

- windows_cp1251.
Либо в таком виде:

2002 ����������� �� �����������, �.�. �������� ��������� ������ ������ �� �����������. Пожалуйста, сообщите администратору!

- UTF8.
P.S. Это текст одной и той же ошибки, только в разных кодировках
Каким способом можно сделать так, чтобы отображалось все верно? Заранее спасибо!

2

Re: Кодировка.

Уточните в какой кодировке страницы сайта и в какой кодировке данные находятся в БД. Очевидно, что у вас две разные кодировки на одной странице, что невозможно.

3

Re: Кодировка.

Hanut сказал:

Уточните в какой кодировке страницы сайта и в какой кодировке данные находятся в БД. Очевидно, что у вас две разные кодировки на одной странице, что невозможно.

Есть такая схема. Index.php включает в себя engine.php, который в свою очередь включает db.class.php, в котором есть функция __construct(). Она подключается к базе данных, и в случае ошибки вызывает функцию error(). Эта функция и генерирует текст ошибки. Все файлы сохранены в кодировке UTF8 без BOM. В БД данных пока нет, идет только подключение.

4 (изменено: Hase, 2013-06-27 20:45:57)

Re: Кодировка.

    Class db {
    
        function __construct() {
            if(!mysql_connect("haprog.com","admin","0126")) {
                $result = $this->error(mysql_error(),mysql_errno());
                echo $result;
            }
            if(!mysql_select_db("haprog_db")) {
                $result = $this->error(mysql_error(),mysql_errno());
                echo $result;
            }
        }
        
        private function error($error,$errno) {
$ERROR_MESSAGE = <<<_ERROR
<div class="mysql_error_message_block">
    <span class="mysql_error_message_code">$errno</span>
    <span class="mysql_error_message_string">$error</span>
    <a class="mysql_error_link" href="www.haprog.com/feedback.php?error=$errno">Пожалуйста, сообщите администратору!</a>
</div>
_ERROR;
return $ERROR_MESSAGE;
        }
    }

Вот часть класса db

5

Re: Кодировка.

Хм, проблема устранена путем отключения антивируса, который блокировал Mysql.