"PHP" / Говнокод #355 Ссылка на оригинал

0

  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 guest, (Updated )

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

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8