Вопрос собственно в этом. Я хочу вставит в базу например имя пользователя в строку Varchar 50 символов длинной Но строка может быть переменной длинны - 1) пользователь вводит символы на английском 1 байт 2) На русском 2 байта и получается ситуация ситуация что может ввести - 49 английских символов +1 русский и если тупо обрезать Код (Text): substr($strt,0,50) То может оказаться последний символ просто будет половинкой☻ --- Добавлено --- Кстати немного офтопа! Но хочу передать слова благодарности тем типам☻ кто держит данный форум (держит в первую очередь в чистоте и юзабилити☺) Все очень на высоте.
Используй таблицы utf8 --- Добавлено --- Да все они там жаркие парни баблом не делятся. Даже сходки и те не за их счет
Так, том и дело что таблицы UTF8. Вот микро тест Код (Text): $str1 ="English"; $str2 ="Английс"; $str3 ="ZФZФZФZ"; $str = $str1; echo $str. ' Длинна: '. strlen($str) . ' Обрезаный до 3 символов: '. substr($str,0,3).'<br>'; $str = $str2; echo $str. ' Длинна: '. strlen($str) . ' Обрезаный до 3 символов: '. substr($str,0,3).'<br>'; $str = $str3; echo $str. ' Длинна: '. strlen($str) . ' Обрезаный до 3 символов: '. substr($str,0,3).'<br>'; echo 'mc функции <br><br>'; $str = $str1; echo $str. ' Длинна: '. mb_strlen($str) . ' Обрезаный до 3 символов: '. mb_substr($str,0,3).'<br>'; $str = $str2; echo $str. ' Длинна: '. mb_strlen($str) . ' Обрезаный до 3 символов: '. mb_substr($str,0,3).'<br>'; $str = $str3; echo $str. ' Длинна: '. mb_strlen($str) . ' Обрезаный до 3 символов: '. mb_substr($str,0,3).'<br>'; Результат English Длинна: 7 Обрезаный до 3 символов: Eng Английс Длинна: 14 Обрезаный до 3 символов: А� ZФZФZФZ Длинна: 10 Обрезаный до 3 символов: ZФ mc функции English Длинна: 7 Обрезаный до 3 символов: Eng Английс Длинна: 7 Обрезаный до 3 символов: Анг ZФZФZФZ Длинна: 7 Обрезаный до 3 символов: ZФZ --- Добавлено --- Просто смыл в том что я если у пользователя более 50 символов, хочу их обрезать. (не возвращая к форме, что бы он их заново ввел) Но при этом не допускать вот таких вот призраков