Столкнулся с проблемой, что при выводе выбранного из слова, написанного кириллицей, символа, получаю кракозябру или ???, хотя вывод самого слова происходит без проблем. Латинскими символами нормально выводит. Пробовал погуглить, решения проблемы не нашел. Еще var_dump выдает такую же кракозябру. Делаю все на локальном сервере через Denver. PHP: <p> <?php $text0 = 'Привет'; echo $text0; ?> </p> <p> <?php $lit = $text0[1]; echo $lit; ?> </p> <p> <?php var_dump($lit); ?> </p>
Если не вдаваться в подробности, то латинские символы занимают один байт, а кириллические - два. В вашем примере, грубо говоря, вы получаете "половину" буквы. Более подробная информация
Попробовал iconv, потом mb_convert_encoding, безрезультатно. На одном форуме похожую проблему решили поправив переменные окружения апача, но там в подробности не вдавались, а я не уверен, что мне стоит туда лесть.
@mischael надо использовать функцию которая поддерживает мультибайтовые кодировки, думаю у тебя там utf-8, а он мультибайтовый, вот https://secure.php.net/manual/ru/function.mb-substr.php