Здравствуйте! У меня часто возникают проблемы с кодировками, в частности с отображением русских символов во всех более-менее современных браузерах. Вот еще один вопрос возник: Почему PHP-функция "ucfirst()" не работает для русских символов? Как можно "заставить" её работать? Или есть хотя бы альтернатива? P.S Только банальщину с заменой букв по массиву предлагать не стоит. Спасибо всем, кто откликнулся!
Ответ
UTF-8, разумеется? PHP не может нормально работать с многобайтными кодировками. Наиболее близкое решение:
mb_internal_encoding("UTF-8");
function mb_ucfirst($text) {
return mb_strtoupper(mb_substr($text, 0, 1)) . mb_substr($text, 1);
}
echo mb_ucfirst("тест
");
На всякий случай, дополню: если вы до сих пор кипятите^W используете CP1251 или, упаси Его Макароннейшество, KOI8-R, то может помочь вызов setlocale, с однобайтными кодировками ucfirst кое-как работает:
setlocale(LC_CTYPE, "ru_RU.CP1251");
echo ucfirst("\xf2\xe5\xf1\xf2
");
Но работать это будет только в случае, если в системе есть такая локаль. Т.е. как повезет.
Комментариев нет:
Отправить комментарий