jeno
Новичок
Непонятки с размером стринга после смены кодировки
Здравствуйте )
у меня следующая проблемка...
перевел весь сервер на с CP1251 на UTF8
открываю страницу (не важно какая CMS), какие-то непонятные глюки (не с символами, а с CMS), ковырял около часа...
а итоге получил:
Notice: unserialize() [function.unserialize]: Error at offset 138 of 359 bytes in /usr/home/...
(для тех кто не знает, функция раскладывает строку "a:3:{i:0;s:20:"Список пользователей";i:1;s:10:"users_list";i:2;s:1:"6";}" в массив/объект...превращает массив в строку функцией serialize)
так вот, если посчитать, то "Список пользователей" это 20 символов...но оно показывает что 39 =\ даже
показывает 39
знаю что UTF8 вмещает в себя больше символов (т.к.международной считается) чем 1251..от этого и размер больше...
но хм..это такой умный РНР или у меня что-то не так? привык к тому что если я вижу 20 символов в словосочетании, их должно быть именно 20 ) (если прикинуть...то какие проблемы могут всплыть..например в функции обрезания текста и т.д. и т.п. где используется strlen \= )
вообщем, хотел спросить, так должно быть? =\ или я что-то не так сделал? (возможно какие-то кодировки где-то)
п.с.в mysql кодировка БД, таблицы, полей, и соединения UTF-8
Заранее всем спасибо!
Здравствуйте )
у меня следующая проблемка...
перевел весь сервер на с CP1251 на UTF8
открываю страницу (не важно какая CMS), какие-то непонятные глюки (не с символами, а с CMS), ковырял около часа...
а итоге получил:
Notice: unserialize() [function.unserialize]: Error at offset 138 of 359 bytes in /usr/home/...
(для тех кто не знает, функция раскладывает строку "a:3:{i:0;s:20:"Список пользователей";i:1;s:10:"users_list";i:2;s:1:"6";}" в массив/объект...превращает массив в строку функцией serialize)
так вот, если посчитать, то "Список пользователей" это 20 символов...но оно показывает что 39 =\ даже
PHP:
print strlen("Список пользователей");
знаю что UTF8 вмещает в себя больше символов (т.к.международной считается) чем 1251..от этого и размер больше...
но хм..это такой умный РНР или у меня что-то не так? привык к тому что если я вижу 20 символов в словосочетании, их должно быть именно 20 ) (если прикинуть...то какие проблемы могут всплыть..например в функции обрезания текста и т.д. и т.п. где используется strlen \= )
вообщем, хотел спросить, так должно быть? =\ или я что-то не так сделал? (возможно какие-то кодировки где-то)
п.с.в mysql кодировка БД, таблицы, полей, и соединения UTF-8
Заранее всем спасибо!