我想在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
以同样的方式工作?
答案 0 :(得分:13)
您应该将mbstring用于unicode字符串。
$char = mb_substr($text, 0, 1, 'UTF-8'); // output अ
您可以替换UTF-8'如果您需要,可以使用任何其他编码。
默认情况下,PHP不支持unicode。请注意,如果要使用此选项,则需要启用mbstring。您可以通过检查是否加载了扩展程序来检查:
if (extension_loaded('mbstring')) {
// mbstring loaded
}