Проблема такая. Получаю строку в UTF8. Обрезаю substr и в результате иногда вконце появляется вопросик. Тоесть было "Организация и управление маркетинговой деятельностью" - получилось "Организация и управление мар�...". Как избежать вопросика? =)
[Ответ]
Vital_N 17:06 11.04.2007
Breathe, юзай mb_substr
вообще при работе с UTF - все строковые функции должны использоваться multi-byte
[Ответ]
Vital_N 17:10 11.04.2007
зы
забыл сказать - только пых должен быть с поддержкой mbstring собран
[Ответ]
Сообщение от :
<?php
function utf8_substr($str,$from,$len){
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>
Спасиб.
Только вот добавил mbstring в php.ini и сервак перестал отвечать на запросы. Странно все это, пойдука я лучше домой! =)
[Ответ]
Breathe 10:19 12.04.2007
Пришел сегодня и сервер как ни в чем не бывало заработал. В результате я смог немного поэксперементировать с mb_substr. Напрягает, что приходится всегда указывать кодировку при обращении к функции. Может сначала перекодировать Windows-1251 и уже с этим делать операции, а потом назад?
[Ответ]
Vital_N 11:33 12.04.2007
Сообщение от Breathe:
Пришел сегодня и сервер как ни в чем не бывало заработал. В результате я смог немного поэксперементировать с mb_substr. Напрягает, что приходится всегда указывать кодировку при обращении к функции. Может сначала перекодировать Windows-1251 и уже с этим делать операции, а потом назад?
т.е перегнать в вин займет меньше времени чем указать кодировку?
[Ответ]
Breathe 11:41 12.04.2007
Ну получил строку, на нее mb_convert_encoding, помучил и отпустил снова благословив mb_convert_encoding. Йо?
[Ответ]
Vital_N 11:56 12.04.2007
зачем стока телодвижений? )) храни все в 1251 и выводи в 1251 и будет тебе счастье если с юникодом не хочешь заморачиваться )
[Ответ]
Breathe 12:42 12.04.2007
В том то и дело что нужен юникод! У меня там система многоязычная =)
[Ответ]