Задать вопрос
@leukocyte

Почему получаются кракозябры при получении символа из строки в PHP?

Есть небольшой скрипт на php (кодировка utf-8), вызывается из консоли под linux. Есть вот такая проблема:
$letters = 'бвгд';
echo $letters; // печатает 'бвгд'
echo 'б'; // печатает 'б'
echo $letters[0]; // печатает �

Та же беда при отправке запроса на сервер (сервер осуществляет поиск по текстовому запросу). Если передавать строку, или одиночный введенный символ, то все работает. Если попробовать передать символ, полученный как $letters[0], ответ пустой.
  • Вопрос задан
  • 361 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что [] работает не с символами, а с байтами и некорректно работает с многобайтными кодировками. Используйте mb_substr()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы