Whois. Проблема кодировки

Discussion in 'PHP' started by dimash, 25 Mar 2009.

  1. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    #1 dimash, 25 Mar 2009
    Last edited: 25 Mar 2009
  2. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    Ты так и будешь новые темы по всем вопросам задавать?

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

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    А ты посмотри imena.ua!
     
  4. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    Для чего мне его смотреть?
    Используй iconv
     
  5. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Да, спасибо, прав. Это подтвердили netua. Я поставил в "МЕТА" windows-1251, а скрипте добавил
    $buffer = iconv("KOI8-U","Windows-1251",$buffer);
    Все равно проблема. Whois здесь.
     
    #5 dimash, 25 Mar 2009
    Last edited: 25 Mar 2009
  6. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    PHP:
    $buffer iconv("KOI8-U","windows-1251",$buffer);
    И в мета все сотри.
     
  7. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Это не имеет. Значения.
    В чем проблема я так и не понял.
     
  8. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    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/

    +

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

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Если в ИЕ. выбрать KOI8-U, тогда сразу читается.
     
  10. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Может,хостинг виноват? Whois работает, проверяет.
    Проблема с кодировкой. netua подтверидили, что ответ приходит кодировкой "KOI8-U", но строки
    PHP код:
    PHP:
    $buffer iconv("KOI8-U","Windows-1251",$buffer); 
        
    mb_convert_encoding($buffer,"UTF-8","KOI8-U");
    не помогли. Они что-то преобразовуют, но получается каша.
     
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Это

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

    замени на это

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

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

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

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Я понимаю, можно. Но, тупо будет. Кстати, тогда, получается надо заново сохранить файл не в кодировке ansi, а в какой-то другой.
    Значит,по шагам
    1. В мета-теги страницы "Windows-1251"
    2. Я получаю в "KOI8-U"
    3. Я перевожу из "KOI8-U" 2 "Windows-1251"
    4. Я вывожу ответ.
    В чем-с вопрос?
     
  13. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    на текущий момент в этих двух странных строчках, обрамленных в теги PHP, т.к. нужна только одна, которая первая
     
  14. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Ты не сарказничай.
    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/>";
        }
    }
    ?>