[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кодировка и substring
acerrusm
Привет!

Столкнулся с проблемой: при обращении к отдельным символам при помощи квадратных скобок вылазят кракозябры.

Собственно код:


<?php

ini_set('default_charset', 'UTF-8');

?>

<html>
<
head>
<
title></title>
</
head>
<
body>

<?php

$word = "ПРИВЕТ";
echo $word[2];

echo mb_strlen($word, 'UTF-8');


?>


</body>
</
html>


В $word[2] вместо буквы "Р" вижу кракозябры.

Со strlen я разобрался — mb_strlen показывает длину в 6 символов а вот с обращением к отдельному символу не получается.

Помогите пжалуйста.


AllesKlar
С квадратными скобками в utf-8 не получится работать, т.к. каждый символ может иметь более одного байта.
Работайт дальше как с мультибайтными строками.
mb_substr($word, 2, 1); // буква И


_____________
[продано копирайтерам]
Invis1ble
в многобайтных кодировках нельзя так ($word[2]) делать.
используй строковые функции из mbstring

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

acerrusm
AllesKlar, Invis1ble спасибо!

Вот еще что заметил:

for ($i=192; $i<=223; $i++) {
$x = chr($i);
print $x;
}


Этот код выдает тоже кракозябры. Теперь вообще ничего не понимаю – кодировка же в utf-8 стоит :blink:
Invis1ble
все правильно, ты выводишь символ в однобайтной кодировке, но браузер думает, что получил текст в utf-8 и пытается его отрисовать.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

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