PHP / FORM / UTF-8?
Добрый день.
Отправляю форму. В заголовке сайта стоит: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> Но не получается правильно посчитать длину строки из русских символов. print strlen($GLOBALS['_POST']['username']); Правильно понимаю что когда сайт работает в UTF-8 для работы со строками всегда надо исползовать: if (mb_strlen($searchitem, 'UTF-8') >= 4) ? вместо strlen-обычного? -- Спасибо. |
Однозначно при использовании utf8 со строками использовать mb_ функций.
В расширении multibyte string (mb_) есть опция перегрузки стандартных функций, когда strlen() и прочие на самом деле подменяются mb_ аналогами. Но не все. И я лично предпочитаю явно использовать mb_ функции, что бы не зависеть от настроек php. В том числе в регулярках. Но там два варианта, либо использовать mb_ereg_*(), либо preg_*() с модифкатором "u". |
Значит тогда использую mb_
И все прекрасно работает... И потом - уже наверное не будет сайтов без UTF-8 на typo3... И даже не помню что бы где-то писал: PHP код:
|
Цитата:
Использовать нужно однозначно mb_ аналоги, так как иначе будут проблемы с языками. Вот если приходится что-то доделывать или переделывать, то зачастую проще перегрузить использование mb_ функций вместо обычных через настройки сервера, опять же, если знаешь, что делаешь - все это может затронуть какие-то еще вещи. |
Часовой пояс GMT +4, время: 12:09. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot