Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Whois. Проблема кодировки (https://forum.antichat.xyz/showthread.php?t=112869)

dimash 25.03.2009 01:14

Whois. Проблема кодировки
 
Whois, кодировка не-работает: address: 62458 иБТЛ¦ЧУШЛБ иБТЛПЧШЛЙК рплпфйм¶члб
Whois, кодировка работает address: 62458 Харківська Харковький ПОКОТИЛІВКА.
Суть проблемы,разница.

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 здесь.

mailbrush 25.03.2009 16:01

PHP код:

$buffer iconv("KOI8-U","windows-1251",$buffer); 

И в мета все сотри.

dimash 26.03.2009 20:05

Цитата:

Сообщение от mailbrush
PHP код:

$buffer iconv("KOI8-U","windows-1251",$buffer); 

И в мета все сотри.

Это не имеет. Значения.
В чем проблема я так и не понял.

Pashkela 26.03.2009 20:31

PHP код:

<?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 работает, проверяет.
Проблема с кодировкой. netua подтверидили, что ответ приходит кодировкой "KOI8-U", но строки
PHP код:
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

Цитата:

Сообщение от dimash
Может,хостинг виноват? Whois работает, проверяет.
Проблема с кодировкой. netua подтверидили, что ответ приходит кодировкой "KOI8-U", но строки
PHP код:
PHP код:

$buffer iconv("KOI8-U","Windows-1251",$buffer); 
    
mb_convert_encoding($buffer,"UTF-8","KOI8-U"); 

не помогли. Они что-то преобразовуют, но получается каша.

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

dimash 28.03.2009 02:43

Ты не сарказничай.
PHP код:

<?php
$fp 
fsockopen($whois43);

  
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/>";
    }
}
?>



Время: 00:47