utf-8 строка как массив ... Как ?

ivanmara

Новичок
utf-8 строка как массив ... Как ?

Добрый день. Есть код:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<? 

	define('ALFAVIT', 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ');

	$AlfavitString = ALFAVIT;

	for ($i = 0; $i < strlen($AlfavitString); ++$i)
	{ 
              echo $AlfavitString[$i].' ';
	};

?>
</body>
</html>
Скрипт создан в кодировке utf-8, при работе скрипта выводятся знаки вопросов. я так понимаю что проблема в кодировке строки где на каждый символ приходиться несколько байтов и инструкция echo $AlfavitString[$i].' '; делает побайтный вывод который уже как таковой буквой не являеться и браузер выдаёт знаки вопросов.

Отсюда вопрос ... как правильно работать со строками в utf-8 кодировке в частности пробежаться по нему посимвольно и сделать корректно вывод аля echo $AlfavitString[$i] ?
 

ivanmara

Новичок
К сажалению в mbstring модуле нет аналогов для работы со строкой как массивом ... (
 

Фанат

oncle terrible
Команда форума
господи.
вот придумают же люди себе проблему на пустом месте.
навскидку придумывается десяток решений задачи, для которой может потребоваться строка, как массив.
но мы уп(с)ремся, но будем хотеть только так.
 

ivanmara

Новичок
*****
Отлично ... ну придумай решение для echo $AlfavitString[$i].' '; для utf-8 случая?
 

fixxxer

К.О.
Партнер клуба
а можно я поиздеваюсь? ;)

$string = preg_split('//u', $string)

:D
 

AmdY

Пью пиво
Команда форума
Отлично ... ну придумай решение для echo $AlfavitString[$i].' '; для utf-8 случая?
хороший вопрос, нужно взять на заметку, жаль только половина отвалится уже на вопросе как сделать тоже с ASCII
 

FB3

Новичок
Ради интереса покопался, сделал тупо в лоб, понадобилось всего две функции:
mb_strlen
mb_substr

Есть ли решения проще? :)
 

AmdY

Пью пиво
Команда форума
тогда echo preg_replace('~.~u', "$0 ", 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ');
 
Сверху