1. PHP / Говнокод #355

    +28.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function is_utf($str){
    if(iconv("UTF-8","UTF-8",$str)==$str)
    return true;
    else
    return false;
    }

    utf-8 или нет? :)

    Запостил: guest, 10 Января 2009

    Комментарии (11) RSS

    • привет, хабрахабр!
      Ответить
    • страйко:
      смешно
      Ответить
    • очень!
      Ответить
    • Это относительно распространенный способ проверки. Попробуйте найти лучшие альтернативы (они существуют, но совсем не очевидны или просты).
      Ответить
    • а почему это работает, объясните
      т.е. разве должно что-то биться при преобразовании из утф8 в утф8?
      Ответить
    • voidex:
      Скорее восстанавливаться. Например, в cp1251 русские символы начинаются с выставленного бита (так как > 128), это невалидно для UTF-8. PHP не знаю, но подозреваю, что заменится на '?', например.
      Ответить
    • voidex:
      Прошу прощения, не PHP не знаю, а с iconv'ом не работал, так правильнее.
      Ответить
    • Keeper:
      Почему бы не воспользоваться
      mb_check_encoding() ?
      Ответить
    • Gemorroj:
      Keeper, потому, что для этого требуется библиотека mbstring, которая на данный момент по дефолту с PHP не поставляется. Возможно такой код был написан из соображений работоспособности на большинстве серверов.
      Ответить
    • vic:
      отличная идея проверки ютф ;)
      Ответить
    • Если оно работает, то iconv тоже писали идиоты... гы
      Ответить

    Добавить комментарий