Просмотр полной версии : 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-обычного?
--
Спасибо.
dmartynenko
05.07.2013, 13:06
Однозначно при использовании utf8 со строками использовать mb_ функций.
В расширении multibyte string (mb_) есть опция перегрузки стандартных функций, когда strlen() и прочие на самом деле подменяются mb_ аналогами. Но не все.
И я лично предпочитаю явно использовать mb_ функции, что бы не зависеть от настроек php.
В том числе в регулярках. Но там два варианта, либо использовать mb_ereg_*(), либо preg_*() с модифкатором "u".
Значит тогда использую mb_
И все прекрасно работает...
И потом - уже наверное не будет сайтов без UTF-8 на typo3...
И даже не помню что бы где-то писал:
// For backend charset
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;';
// For GIFBUILDER support
// Set it to 'iconv' or 'mbstring'
$TYPO3_CONF_VARS['SYS']['t3lib_cs_convMethod'] = 'mbstring';
// For 'iconv' support you need at least PHP 5.
$TYPO3_CONF_VARS['SYS']['t3lib_cs_utils'] = 'mbstring';
Андрей Аксенов
06.07.2013, 16:35
Значит тогда использую mb_
И все прекрасно работает...
И потом - уже наверное не будет сайтов без UTF-8 на typo3...
И даже не помню что бы где-то писал:
// For backend charset
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;';
// For GIFBUILDER support
// Set it to 'iconv' or 'mbstring'
$TYPO3_CONF_VARS['SYS']['t3lib_cs_convMethod'] = 'mbstring';
// For 'iconv' support you need at least PHP 5.
$TYPO3_CONF_VARS['SYS']['t3lib_cs_utils'] = 'mbstring';
Да, эти настройки уже признаны устаревшими, но базу данных нужно создавать с учетом utf-8! Несколько раз попадал уже на сайты с проблемами, ноги которых росли из неверной кодировки базы данных. Походу эти сайты создавались из каких-то пакетов, а уже в них база данных создавалась изначально в неверной кодировке.
Использовать нужно однозначно mb_ аналоги, так как иначе будут проблемы с языками. Вот если приходится что-то доделывать или переделывать, то зачастую проще перегрузить использование mb_ функций вместо обычных через настройки сервера, опять же, если знаешь, что делаешь - все это может затронуть какие-то еще вещи.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot