МЧ
Мария Черных

PHP. Кириллица и $var[1], где $var - строка. Русские буквы некорректно отображаются.

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

Есть $var, в которой содержится строка. В строке - русские буквы. К примеру:

$var = 'абв';

Хочу вывести первую букву:

var_dump($var[0]);

Выводит странный символ, как будто проблема с кодировкой. Символ выглядит так: �. Но кодировка у меня стоит UTF-8 без BOM, и в head прописано то же самое:



при доктайпе HTML5. Я слышала, что кириллические символы весят 2 байта, а латинские - 1 байт.

Вопрос: как достать один кириллический символ, не используя функцию substr()?

Извините, вопрос решен:

var_dump($ol[0].$ol[1]);

Наташа Разумова
Наташа Разумова

какой-то фигней вы занимаетесь. зачем вообще писать (плохую) замену встроенной в язык ф-ии? а ничего, что в utf-8 каждый символ может занимать от 1 до 4(6) байтов? а вы "ой возьму всегда два, вопрос решен".
почитайте http://stackoverflow.com/questions/3666306/how-to-iterate-utf-8-string-in-php про разбиение utf строки посимвольно.

Be
Be

В корневом каталоге сайта создай файл с названием .htaccess (без формата) , пропиши туда AddDefaultCharset UTF-8 и сохрани. Потом проверь!

ЗС
Зоя Семенова

Сохрани файлик в UTF-8 без BOM
Если не поможет UTF-8 без BOM, пробуйте с BOM
Если опять не поможет, пробуйте 1251-ANSI

Похожие вопросы
удаление строки в php
Почему в скрипте при исправлении на русский язык текста он отображается некорректно? PHP
Как в php не учитывать регистр русских букв?
Почему некорректно отображается страница с расширением php
некорректный вывод русских букв в php
Сайт некорректно отображается в IE, что делать?
В С++ не отображаются русские буквы! Что делать?
Не отображается кириллица (русский) в текстовых документах.
почему php отображается как текст
RAW-файлы отображаются некорректно.