Задать вопрос
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) и я выхватываю слово в строку из этого массива, то первая буква заменяется на �.

Перепробовал разные варианты, все время результат один- либо просто не переводит в верхний регистр, либо вот этот символ.
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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 - мультибайтовая кодировка с переменной "длинной символа", такой фокус с ней не проходит, работайте со строками только как со строками и все будет нормально.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽