Пролетая над гнездом кукушки
Работаю сейчас над одним проектом. Связан с поиском. Так вот столько всего разного я увидел во время этой работы, что можно написать Например, посмотрите на эту строчку и вы поймёте, почему текст будет не в правильной кодировке.
<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 полностью в своих проектах, с меня хватит...
В общем, развлекаюсь дальше.
Сейчас буду делать поиск и вывод картинок.
<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):
оденьте очки, вам идёт )
я шутю. а тебе что, что-то не ясно в тексте?
вау. нам что же есть о чём поговорить?
я так и знал ) ты Пушкина учишь?
"Милостивый государь,
Виноват перед вами, долго не отвечал на ваше письмо , хлопоты всякого рода не давали мне покоя ни на минуту. Также не благодарил я вас еще за присылку «Телеграфа» и за удовольствие, мне доставленное вами в моем уединении, — это непростительно.
Радуюсь, что стихи мои могут пригодиться вашему журналу (конечно, лучшему из всех наших журналов). Я писал князю Вяземскому , чтоб он потрудился вам их доставить — у него много моих бредней.
..."
А libmbfl может и вовсе отсутствовать.
И вообще, для загрузки страниц удобнее пользоваться не file_get_contents (убого) и не сокетами (слишком много ручного кодинга), а CURL'ом, который, в частности, умеет сам переходить по 301/302 и еще много всяких вкусностей.
Полностью переходить во всех проектах на юникод — похвально, но очень геморройно, если вы пишете на PHP, версией ниже 6 (да и неизвестно, как будет в 6-рке).