boatswain
15.05.2014 - 22:33
Windows xp RU sp3 php 5.3.13 mysql 5.5.25
функция mysql_connect()
ошибки типа:
"php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен."
или
"Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение."
Я уже скоро сломаюсь: почему в этих сообщениях присутствует русский текст, и почему именно в кодировке 1251??
На каком уровне формируется текст именно этих ошибок? Mysql? PHP? ОС? еще ниже?
Другие ошибки php - на английском. Ошибки mysql (к примеру, об отсутствии БД или таблицы) - на английском. А вот mysql_connect() - отличился... что за фигня?
ВЕЗДЕ, где только возможно проставлены кодировки utf-8 (кроме локали - под виндой локаль c utf-8 через setlocale() выставить невозможно. Но она и не причем, выставлял у локали кодировку 866, а текст сообщения все равно в 1251).
Ну и в самой винде: chcp выдает 866, но это как бы кодировка интерпретатора команд... а вот ниже, на уровне Windows API, может из тех глубин прорываться ???
Winston
15.05.2014 - 22:56
Посмотри файле где вызывается mysql_connect(). Покажи его здесь..
Может там or die() используется...
boatswain
15.05.2014 - 23:25
да не, даже если отдельно запустить только mysql_connect('127.0.0.12', '', '');
(если, конечно, на этом интерфейсе не будет висеть mysql)
у меня сообщение об ошибке в кодировке 1251 выводится.
Говорят, что это системный api моей винды его таким и отдает... а следовательно, разные ОС (у разных хостеров) могут отдавать ответ в разных кодировках и языках.
Valick
16.05.2014 - 07:50
Цитата |
ВЕЗДЕ, где только возможно проставлены кодировки utf-8 |
это слишком расплывчатое заявление, начинайте перечислять где именно
_____________
Стимулятор ~yoomoney - 41001303250491
boatswain
16.05.2014 - 12:44
возьмем скрипт с одной строкой:
mysql_connect('127.0.0.555', '', '').
т.к. IP 127.0.0.555 в принципе не может существовать, то ошибка на winXP_RU будет такая:
"php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен."
PHP:
1. .htaccess - AddDefaultCharset UTF-8;
2. т.к. скрипт не содержит не_ASCII символы, то пофик в какой он кодировке, но все равно поставил utf8 %).
3. Локаль, как я уже упомянул, в utf8 на винде не поставить, но она не при чем, т.к. устанавливал на 866, но сообщение об ошибке все равно в 1251.
Mysql:
SHOW VARIABLES LIKE "char%":
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
в ОС:
уже тоже писал. И т.к., скорее всего, эта ошибка формируется на уровне системного API (ОС), то вот как посмотреть кодировку формируемого текста его функциями - я не знаю %(. Разные ОС - разные API. Вот как бы это на уровне PHP выяснять и с помощью того же iconv() перекодировать ??
Valick
16.05.2014 - 13:02
а если сделать файл из двух строк?
<?php
header( 'Content-type: text/html; charset=utf-8' );
mysql_connect('127.0.0.555', '', '');
?>
_____________
Стимулятор ~yoomoney - 41001303250491
boatswain
16.05.2014 - 14:02
ну, в .htaccess стоит AddDefaultCharset UTF-8
но в любом случае, пробовал задавать дополнительно и через header
и через <meta> - ниче не меняется - сообщение ошибки в кодировке 1251.
neadekvat
16.05.2014 - 16:46
Я не понял, где и что вы ищете, но не увидел одного слова, так что напишу его здесь: mysql_set_charset('utf8');
Valick
16.05.2014 - 18:07
neadekvat, до него (mysql_set_charset) дело не доходит
_____________
Стимулятор ~yoomoney - 41001303250491
neadekvat
16.05.2014 - 18:43
О, теперь я понял, о чем речь в этой теме
Ошибка "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение" -- она точно системная, потому что встречается.. много где.
А 1251, потому что кодировка системы такая, я так предполагаю. Какая-нибудь там "Кириллица" в настройках стоит. Сорри, хрюшкой уже много лет не пользуюсь, даже не вспомню, где там это искать. Где-нибудь в панели управления небось.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.