Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: длина строки и юникод
Форумы портала PHP.SU » PHP » Программирование на PHP » длина строки и юникод

Страниц (1): [1]
 

1. Ch_chov - 21 Июня, 2009 - 12:10:45 - перейти к сообщению
Как правильно определять длину строки в UTF-8?
strlen и mb_strlen возвращают количество байтов, а не символов.
2. vitaliy_mad - 21 Июня, 2009 - 12:35:16 - перейти к сообщению
а если так:
mb_strlen($str,'utf8');
3. Ch_chov - 21 Июня, 2009 - 12:43:42 - перейти к сообщению
Да, так работает!

Вот так
тоже вроде правильно определяет.
(Добавление)
Ещё можно что бы не прописывать во всех скриптах 'utf-8'
установить кодировки по умолчанию в .htaccess
для mb_string – php_value mbstring.internal_encoding UTF-8
для iconv – php_value iconv.internal_encoding UTF-8
4. JustUserR - 21 Июня, 2009 - 14:57:52 - перейти к сообщению
Очень странно что PHP себя так ведет - выдает количетсво байтов
Я конечно не видел реализацию исходников mb_string но длина массива символов (Строки) остается длиной из чего бы массив не состоял
5. Ch_chov - 21 Июня, 2009 - 15:17:41 - перейти к сообщению
Наверно потому, что в отличии от C++ в PHP строка это не массив символов.
6. JustUserR - 21 Июня, 2009 - 18:54:44 - перейти к сообщению
Ch_chov Кхм а PHP это самостоятельный язык первого уровня не написанный на C/C++ ? Нет конечно И все функции PHP реализованы на C++ном коде - и я не понимаю зачем было изобретать велосипед вместо того чтобы напряму вернуть длину строки
7. aldan8 - 22 Июня, 2009 - 12:26:15 - перейти к сообщению
У меня такой вопрос , когда используешь функцию SUBSTRING( string, 0 ,15) , например, в MySQL , она тоже символы возвращает или байты ?
Потому что у меня указана кодировка UTF8 в MySQL и когда PHP выводит их , то в конце текста иногда появляется какой то иероглиф или не понятный символ.

 

Powered by ExBB FM 1.0 RC1