За последние 24 часа нас посетили 18635 программистов и 1659 роботов. Сейчас ищут 983 программиста ...

проблема с кодировкой, iconv

Тема в разделе "PHP для новичков", создана пользователем Vad0k, 17 ноя 2014.

  1. Vad0k

    Vad0k Активный пользователь

    С нами с:
    17 ноя 2014
    Сообщения:
    23
    Симпатии:
    0
    Не могу понять почему не получается отобразить текст в читабельный вид, методом iconv... также мне интересно почему строка не преобразовывается с использованием метода iconv в нужную кодировку(windows-1251)
    Код (Text):
    1. <?php
    2. header('Content-Type: text/html; charset=windows-1251');
    3.  
    4. $text = "=CF=F0=E8=E2=E5=F2. tails"; // привет.tails;
    5.  
    6. echo "<p/>".mb_detect_encoding($text)."<br/>"; // CP1251
    7.  
    8. $text = str_replace( "=","&#x", $text);
    9.  
    10. //---------------------------
    11. $text = iconv(mb_detect_encoding($text),"windows-1251",$text);
    12. echo $text;
    13. // ---------------------------
    14. echo "<p/>".mb_detect_encoding($text)."<br/>"; // CP1251
    15. // --------------------------
    16. $text = iconv(mb_detect_encoding($text),"UTF-8",$text);
    17. echo $text;
    18. // ---------------------------
    19. echo "<p/>".mb_detect_encoding($text)."<br/>" ; // CP1251, хотя должно по идее быть UTF-8
    20.  
    21. ?>
    • Код (Text):
      1. ASCII
      2. Ïðèâåò. tails
      3.  
      4. ASCII
      5. Ïðèâåò. tails
      6.  
      7. ASCII

    файл сам сохранен в код. UTF-8. исп. phpStorm...

    PS: в первый на этом форуме
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    1. mb_detect_encoding без списка проверяемых кодировок это бесполезная вещь
    2. твой проверяемый текст реально в ASCII ))) ну правда. там все символы из 7-битного набора.
        (а "\xCF\xF0\xE8\xE2\xE5\xF2. tails" это "привет. tails" уже в кодировке windows-1251. куда ты собрался перекодировать?)
    3. отлаживай свои скрипты пошагово. не надо городить сразу кучу кода. контролируй промежуточные результаты и всегда заглядывай в исходный текст страницы, а не в то, что отрендерит браузер!

    ты какую-то нелепую работу пытаешся провернуть, непонятно чем тебе можно помочь.
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    это однобайтное представление. то есть конверт ок. вот только заголовок ответа или прочее содержимое страницы заставляют браузер включить режим юникода, поэтому сипи1251 отображается вот этими диакритическими глифами.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Ganzal хотел сказать, что header('Content-Type: text/html; charset=windows-1251'); не сработал. )))
    твой текст уже в кодировке windows-1251, но браузер пытается отобразить его в utf-8. почему? наверное какой-то вывод есть до header().