PDA

Просмотр полной версии : Whois. Проблема кодировки


dimash
25.03.2009, 01:14
Whois, кодировка не-работает: address: 62458 иБТЛ¦ЧУШЛБ иБТЛПЧШЛЙК рплпфйм¶члб (http://webdeveloper.net.ua/whois/index.php?dn_check_url=site.ua)
Whois, кодировка работает address: 62458 Харківська Харковький ПОКОТИЛІВКА (http://imena.ua/whois.php?domain=site.ua).
Суть проблемы,разница.

neval
25.03.2009, 01:19
Ты так и будешь новые темы по всем вопросам задавать?

Потому что ответ приходит в кодировке KOI8-U

dimash
25.03.2009, 01:21
А ты посмотри imena.ua!

neval
25.03.2009, 01:27
Для чего мне его смотреть?
Используй iconv

dimash
25.03.2009, 14:59
Да, спасибо, прав. Это подтвердили netua. Я поставил в "МЕТА" windows-1251, а скрипте добавил
$buffer = iconv("KOI8-U","Windows-1251",$buffer);
Все равно проблема. Whois здесь ( http://webdeveloper.net.ua/whois/index.php?dn_check_url=site.ua).

mailbrush
25.03.2009, 16:01
$buffer = iconv("KOI8-U","windows-1251",$buffer);И в мета все сотри.

dimash
26.03.2009, 20:05
$buffer = iconv("KOI8-U","windows-1251",$buffer);И в мета все сотри.
Это не имеет. Значения.
В чем проблема я так и не понял.

Pashkela
26.03.2009, 20:31
<?php
$q = 'вася пряников';
$s = mb_detect_encoding($q);//Определяем кодировку
$q = iconv($s, 'CP1251//TRANSLIT', $q);//Декодируем
echo $s . "\r\n";
echo $q . "\r\n";
?>


и посмотри, какую кодировку выведет на экран из этих каракуль

+

http://www.artlebedev.ru/tools/decoder/

+

строку прилетевшую скорее всего надо будет в массив загонять, т.к. начинается с английских букв, т.е. сначала отделить читаемое от нечитаемого, а потом отдельно конвертировать кашу

dimash
27.03.2009, 01:05
Если в ИЕ. выбрать KOI8-U, тогда сразу читается.

dimash
27.03.2009, 12:16
Может,хостинг виноват? Whois работает, проверяет. (http://http://webdeveloper.net.ua/whois/indexi.php?dn_check_url=site.ua)
Проблема с кодировкой. netua подтверидили, что ответ приходит кодировкой "KOI8-U", но строки
PHP код:
$buffer = iconv("KOI8-U","Windows-1251",$buffer);
mb_convert_encoding($buffer,"UTF-8","KOI8-U");
не помогли. Они что-то преобразовуют, но получается каша.

Pashkela
27.03.2009, 12:54
Это

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

замени на это

<meta http-equiv="Content-Type" content="text/html; charset=KOI8-U">

все остальное из кода, что касается кодирвок - убери

и перепиши в правильной кодировке названия кнопок и прочее, что от руки

dimash
27.03.2009, 23:15
Я понимаю, можно. Но, тупо будет. Кстати, тогда, получается надо заново сохранить файл не в кодировке ansi, а в какой-то другой.
Значит,по шагам
1. В мета-теги страницы "Windows-1251"
2. Я получаю в "KOI8-U"
3. Я перевожу из "KOI8-U" 2 "Windows-1251"
4. Я вывожу ответ.
В чем-с вопрос?

Pashkela
27.03.2009, 23:23
Может,хостинг виноват? Whois работает, проверяет. (http://http://webdeveloper.net.ua/whois/indexi.php?dn_check_url=site.ua)
Проблема с кодировкой. netua подтверидили, что ответ приходит кодировкой "KOI8-U", но строки
PHP код:
$buffer = iconv("KOI8-U","Windows-1251",$buffer);
mb_convert_encoding($buffer,"UTF-8","KOI8-U");
не помогли. Они что-то преобразовуют, но получается каша.

на текущий момент в этих двух странных строчках, обрамленных в теги PHP, т.к. нужна только одна, которая первая

dimash
28.03.2009, 02:43
Ты не сарказничай.
<?php
$fp = fsockopen($whois, 43);

fputs($fp, "$domain\r\n");

$str = "";

while(!feof($fp)) {
$str .= fgets($fp,128);
$buffer .= fgets($fp);
$buffer = trim(str_replace("\n","<br>",$buffer));
//$buffer = iconv("KOI8-U","Windows-1251",$buffer);
//$buffer = mb_convert_encoding($buffer,"UTF-8","KOI8-U");
}
fclose($fp);

// если в ответе имеется фраза-отказ, домен не

// зарегистрирован, если такой фразы нет -

// следовательно домен зарегистрирован

if(!preg_match("/".$not_found_string."/is", $str)) {
echo "<center>Домен зайнятий</center>";
echo "<table id=report><tr><td>{$buffer}</td></tr></table></p>";
}
else {
echo "Домен вільний <br/>";
}
}?>