Странности с utf 8, помогите!

rosslyn

Новичок
Странности с utf 8, помогите!

Доброго времени суток!
подскажите плиз как быть, выматоло, не могу больше:

вообщем, есть база, всё там настроено в utf8 general ci, в phpmyadmin всё отображается нормально, на сайте utf 8 везде стоит тоже, всё нормально показывает, т.е. когда делаю выборку из базы и заношу текстовое поле в переменную, то при echo она выводится нормально.

НО я немогу подсчитать реальное кол-во символов в ней, неработает как надо substr и т.д.
т.е. в теле переменной текст представлен как бы в неверной кодировке - на одну русскую букву две-три каракули.
если вывести только первый символ в переменной - будет гадость, а если первые два символа - то одна русская буква.

как это исправить?:confused:
 

rosslyn

Новичок
спасибо, это то, что я думаю, так, надо использовать mb_substr() вместо substr?

Function Overloading Feature
You might often find it difficult to get an existing PHP application to work in a given multibyte environment. This happens because most PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports a 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.
 
Сверху