[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Русские символы substr и кодировка = вопрос
techmaker
Доброе утро

пишу следующий ход
<meta http-equiv="content-type" content="text/html; charset=utf-8" /><? 
$a="бульбурка";echo $a.'<br>';
echo substr($a,2,1); ?>

PS: Кодировка файла utf-8, в браузере utf-8.

выводит 'неизвестный символ вместо у' (скриншот)

Необходимо получить символ (альтернатива функции charAt ) для сравнения.

подскажите пожалуйста в чем проблема :)
Nikitian
Проблема в том, что строковые функции php считают, что на один символ тратится только 1 байт, поэтому по-сути являются не строковыми, а 8-битными biggrin.gif
Для работы с текстами в многобайтовых кодировках (utf-8, например), используйте семейство функций mb_* или костыль с перекодировкой текста в однобайтовый cp1251? обработкой и очередной перекодировкой.
В вашем случае достаточно использовать функцию mb_substr() - там тот же порядок аргументов + необязательный параметр - кодировка, если она неверно определилась.
Joker
или перейти на php 5.4 и будет счастье)
techmaker
Цитата (Nikitian @ 15.01.2013 - 07:36)
mb_substr() - там тот же порядок аргументов + необязательный параметр - кодировка, если она неверно определилась.

Спасибо, буду пробовать smile.gif
techmaker
Цитата (Joker @ 15.01.2013 - 09:07)
или перейти на php 5.4 и будет счастье)

Спасибо, буду брать на заметку smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.