Задать вопрос
PageUp
@PageUp
Default

Как правильно сделать строку в UTF с заглавной буквы?

Здравствуйте. Суть вопроса в заголовке. Перепробовал уйму вариантов, разных способов, что предлагались для решения, но все равно результат один и тот же.

Нужно что бы строка начиналась с заглавной буквы. Использовал такой код, до поры до времени.
$namemit = mb_strtoupper(substr($nameitem,0,2), "UTF-8");
$nameitem[0] = $namemit[0];
$nameitem[1] = $namemit[1];


Загвоздка в том, что если я беру слово из файла (кодировка UTF-8), то все работает как нужно, но если слово прописано в array() в странице кода (кодировка тоже UTF-8) и я выхватываю слово в строку из этого массива, то первая буква заменяется на �.

Перепробовал разные варианты, все время результат один- либо просто не переводит в верхний регистр, либо вот этот символ.
  • Вопрос задан
  • 288 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
boyarskiy_mihail
@boyarskiy_mihail
$string = 'привет';
echo mb_strtoupper(mb_substr($string, 0, 1)) . mb_substr($string, 1, mb_strlen($string));
// Привет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
При обращении к строке как к массиву вы не получаете "буквы", вы получаете байты, которые, в немультибайтовой кодировке, можно принять как текстовые символы. Так как утф8 - мультибайтовая кодировка с переменной "длинной символа", такой фокус с ней не проходит, работайте со строками только как со строками и все будет нормально.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
26 дек. 2024, в 14:50
2000 руб./за проект
26 дек. 2024, в 14:40
15000 руб./за проект
26 дек. 2024, в 14:27
100000 руб./за проект