Я хочу получить первый символ строки в 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
работать так же?
Вы должны использовать MBstring для строк Юникод.
$char = mb_substr($text, 0, 1, 'UTF-8'); // output अ
Вы можете заменить «UTF-8» любой другой кодировкой, если вам это нужно.
PHP не поддерживает Unicode по умолчанию. Обратите внимание, что вам нужно включить mbstring, если вы хотите использовать это. Вы можете проверить, проверив, загружено ли расширение:
if (extension_loaded('mbstring')) {
// mbstring loaded
}
Других решений пока нет …