javascript — В PHP подстрока возвращает этот тип символов?

Я хочу получить первый символ строки в PHP. Но он возвращает какой-то неизвестный персонаж, как , Почему это происходит?

$text = "अच्छी ाqस्थति में"; // Hindi String
$char = $text[0];   // $text{0}; also try here .
echo $char;   // output like �

//expected Output अ

//Below code also used
$char = substr($text , 0 , 1);  // Getting same output

Если бы я использовал javascript, я обнаружил, что получаю идеальный вывод:

var text = "अच्छी ाqस्थति में"; // Hindi String
var char = text.charAt(0);
console.log(char)   // output like अ

Пожалуйста, кто-нибудь рассказать мне об этом и решение этой проблемы? Почему эти ошибки, если charAt & substr работать так же?

4

Решение

Вы должны использовать MBstring для строк Юникод.

$char = mb_substr($text, 0, 1, 'UTF-8'); // output अ

Вы можете заменить «UTF-8» любой другой кодировкой, если вам это нужно.

PHP не поддерживает Unicode по умолчанию. Обратите внимание, что вам нужно включить mbstring, если вы хотите использовать это. Вы можете проверить, проверив, загружено ли расширение:

if (extension_loaded('mbstring')) {
// mbstring loaded
}
13

Другие решения

Других решений пока нет …