I want to get the first character of a string in PHP. But it returns some unknown character like �
. Why does that happen?
$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
If I used javascript I found that I get perfect output:
var text = "अच्छी ाqस्थति में"; // Hindi String
var char = text.charAt(0);
console.log(char) // output like अ
Please anyone tell me about that and a solution to this problem? Why these error if charAt
& substr
work the same way?
You should use mbstring for unicode strings.
$char = mb_substr($text, 0, 1, 'UTF-8'); // output अ
You can replace 'UTF-8' with any other encoding, if you need it.
PHP does not support unicode by default. Do note that you need mbstring enabled if you want to use this. You can check by checking if extension is loaded:
if (extension_loaded('mbstring')) {
// mbstring loaded
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With