ФорумПрограммированиеPHP для идиотов → кодировки :D

кодировки :D

  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 23 сентября 2010 г. 8:21

    Кто как детектит кодировку строки? Получаю страницы по разным адресам, везде разные кодировки. Выбираю от туда данные и мне нужно преобразовать их в utf-8. Можно сделать стандартными средствами?

    Всякие mb_detect_encoding не работают с windows-1251. В ответе сервера далеко не всегда передается кодировка.

    Можно как-то хитрожопо сконвертить строку в utf-8, не зная ее начальной кодировки? Ну или определить ее стандартными(!) средствами?
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 23 сентября 2010 г. 8:28, спустя 7 минут 25 секунд

    mb_* когда не указываешь кодировку, пытаются её хитрожопо определить. Если им не удаётся, вряд ли в ручную удастся более хитрожопо.
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 23 сентября 2010 г. 8:32, спустя 4 минуты 23 секунды


    mb_* когда не указываешь кодировку, пытаются её хитрожопо определить. Если им не удаётся, вряд ли в ручную удастся более хитрожопо.
    У mb_convert_encoding можно указать auto, но оно определяет windows-1251 как utf-8.
    Спустя 162 сек.
    А если при конвертации не указывать, то вообще какая-то фигня получается
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 23 сентября 2010 г. 9:50, спустя 1 час 17 минут 54 секунды

    не уверен точно, но может как вариант: берешь кусок строки, и ищешь в нем "знакомые" для предполагаемой кодировки знаки. Если они найдены, то ок, если не найдены, то подменяешь предполагаемую кодировку (тоесть проверочные знаки) на следующие и т.д., пока либо не найдешь нужное тебе либо же не пошлешь нах всю строку. Но в целом хз, никогда с таким не сталкивался, ибо контент не пизжу, все делаю сам =)))
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 23 сентября 2010 г. 10:02, спустя 11 минут 19 секунд

    есть дибы по определению кодировок, но как я понял тебе нужны стандартные(!) средства
    adw/0
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 23 сентября 2010 г. 10:14, спустя 12 минут 3 секунды

    не уверен точно, но может как вариант: берешь кусок строки, и ищешь в нем "знакомые" для предполагаемой кодировки знаки. Если они найдены, то ок, если не найдены, то подменяешь предполагаемую кодировку (тоесть проверочные знаки) на следующие и т.д., пока либо не найдешь нужное тебе либо же не пошлешь нах всю строку. Но в целом хз, никогда с таким не сталкивался, ибо контент не пизжу, все делаю сам =)))

    Нужно проверять наличие ссылки на странице + забирать анкор. С ним-то и проблема.


    есть дибы по определению кодировок, но как я понял тебе нужны стандартные(!) средства


    Да(!) :)

    Вообще сейчас забил на остальные кодировки и гоняю только utf8-cp1251.
    Спустя 186 сек.
    Сразу вспоминается няшный питонячий chardet :)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 23 сентября 2010 г. 10:18, спустя 4 минуты 50 секунд

    =)
    adw/0
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 23 сентября 2010 г. 10:52, спустя 33 минуты 4 секунды

    ну как это? Если header не возвращает кодировку, тогда браузер смотрит на мету. А если нет, то берёт кодировку по умолчанию (ФФ, осёл первым делом на мету смотрит (по крайней мере раньше)), так что сначала хиадер, если нет, то мету, если ни того ни того, то рандом бери))))))))) И блять кто это так охуенно пишет без кодировок?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 23 сентября 2010 г. 14:02, спустя 3 часа 10 минут 36 секунд

    без кодировок браузер косячит как и пс частенько, так что на таких "целей" можно смело положить хуй. на других по приоритету - сначала хидер, потом мета. и будет профит, так делается в дудкурле например
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!