|
|
|
| Здравствуйте.
функция substr($spitch,0,13) вырезает не 14, а 7 читаемых символов.
почему так? | |
|
|
|
|
автор: .heed (29.01.2013 в 19:34) |
|
|
для: btr
(29.01.2013 в 18:11)
| | В мануале по substr() ничего не написано, написано по "Типы данных"->"Строки"
>Строки
Строка - это набор символов, где символ - это то же самое, что и байт. Это значит, что PHP поддерживает ровно 256 различных символов, а также то, что в PHP нет встроенной поддержки Unicode. Смотрите также [u]подробности реализации строкового типа. [/u]
как я говорил, mb_substr() из mbstring можно попробовать заюзать.
К тому-же на некоторых хостингах ошибки mysql сыпались, если нет примерно такого
if ( !mb_check_encoding($_v, 'UTF-8'))
$_v= mb_convert_encoding($_v ,'UTF-8',"auto");
| в проверке пользовательских данных при занесении в базу, если пользователь вместо utf-8 отправит cp1251
Ещё в preg-функциях шаблоны '/.../u' корректно работают с utf-8.
По поводу полдьзовательского ввода как-раз тоже лучше кое-чего из utf-8 символов вообще не публиковать
Бывают ещё проблемы, и если есть возможность, просще совсем не использовать utf-8, просто всё сделать в cp1251, например. | |
|
|
|
|
|
|
|
для: .heed
(29.01.2013 в 19:34)
| | спасибо за ответ. | |
|
|
|
|
|
|
|
для: btr
(29.01.2013 в 18:11)
| | Используйте mb_substr, предварительно включив поддержку в файле php.ini, откомментировав строчку extension=php_mbstring.dll | |
|
|
|