Россия - странная страна13 января 2007. Пеший поход во Фролищи

Пролетая над гнездом кукушки

Работаю сейчас над одним проектом. Связан с поиском. Так вот столько всего разного я увидел во время этой работы, что можно написать Например, посмотрите на эту строчку и вы поймёте, почему текст будет не в правильной кодировке.

<meta http-equiv=content-type content="text/html; charset=windows1251">

Пришлось написать if ($charset == "windows1251") $charset = "windows-1251";

Пишут даже win-1251 и utf8. Вот только что нашёл сайтики.

И многое ещё есть прикольного. Например, не ставят эту самую мету. Вот и догадывайся, в какой же кодировке текст.
А ещё ставят, но сам текст в другой кодировке :)

Поставил код автораспознавания кодировки, да. Приблизилось к 99.9% чистота выхода. Но всё равно смешно. Все эти паршивые кодировки, ужас! Неужели нельзя перейти на одну? Да хотя бы просто прописывать мету и то достаточно.

На адресах жж часто вылазят 302 и 301. Пришлось ставить код загрузки по сокетам, а с помощью file_get_contents я долго думал, в чём же дело. Вообще полностью перешёл на сокеты. Оказывается, у меня был небольшая ошибка в коде, не учитывалось query - строка с параметрами. Теперь всё отлично, как нашёл эту ошибку, долго смеялся.

А ещё iconv работает долго и странно. Сравнил время работы по сравнению с mb_convert_encoding, так iconv вообще тормозная. А ещё иногда выдаёт пустой результат. Долго думал, потом в документации узрел про флаг //IGNORE, поставил его и всё разрешилось, Долго смеялся. В результате решил переходить на unicode полностью в своих проектах, с меня хватит...

В общем, развлекаюсь дальше.

Сейчас буду делать поиск и вывод картинок.

Comments (17):

  • *округлились глаза*
    • оденьте очки, вам идёт )

      • откуда вы знаете?
        • я шутю. а тебе что, что-то не ясно в тексте?

          • нет, конечно всё ясно!!!! я ж Билл Гейтс в юбке!! просто странно для уха и глаз
            • вау. нам что же есть о чём поговорить?

              • я шутила, я гуманитарий
                • я так и знал ) ты Пушкина учишь?


                  "Милостивый государь, 

                  Виноват перед вами, долго не отвечал на ваше письмо , хлопоты всякого рода не давали мне покоя ни на минуту. Также не благодарил я вас еще за присылку «Телеграфа» и за удовольствие, мне доставленное вами в моем уединении, — это непростительно. 

                  Радуюсь, что стихи мои могут пригодиться вашему журналу (конечно, лучшему из всех наших журналов). Я писал князю Вяземскому , чтоб он потрудился вам их доставить — у него много моих бредней. 

                  ..."

                  • *господи, Алёна, помни, с сумашедшими надо соглашаться*
    • mishok
    • 05.01.2007 01:13
    • Харьков / Харьковская область
    Честно говоря, скорость сравнение скорости работы iconv и mb_convert_encoding удивило. Учитывая, что в системе iconv обычно в двух ипостасях фигурирует - и как системная iconv, и как libiconv.
    А libmbfl может и вовсе отсутствовать.
    • да ну их в лес. перехожу на юникод.
    • max_gashkov
    • 07.01.2007 17:21
    • Воронеж / Воронежская область
    Кодировку можно определять не только по мете, а по заголовкам, которые отдает сервер (Content-Type).

    И вообще, для загрузки страниц удобнее пользоваться не file_get_contents (убого) и не сокетами (слишком много ручного кодинга), а CURL'ом, который, в частности, умеет сам переходить по 301/302 и еще много всяких вкусностей.

    Полностью переходить во всех проектах на юникод — похвально, но очень геморройно, если вы пишете на PHP, версией ниже 6 (да и неизвестно, как будет в 6-рке).
    • не нравится мне curl. обожаю сокеты
        • max_gashkov
        • 26.05.2007 23:35
        • Воронеж / Воронежская область
        Безусловно, приятно в десятый раз изобретать велосипед.
        • если будет нужно - применю что угодно. но пока обхожусь минимум везде. хватает
            • max_gashkov
            • 26.05.2007 23:45
            • Воронеж / Воронежская область
            Почему ж тогда PHP, а не ассемблер? На нем тоже вполне можно CGI-приложения писать, да что там! — и веб-сервер свой накатать можно. Там же столько разных лишних функций...
            • извините, вы зашли слишком далеко...