在PHP子串返回��这些类型的字符?

时间:2014-12-15 05:41:59

标签: javascript php substr charat

我想在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以同样的方式工作?

1 个答案:

答案 0 :(得分:13)

您应该将mbstring用于unicode字符串。

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

您可以替换UTF-8'如果您需要,可以使用任何其他编码。

默认情况下,PHP不支持unicode。请注意,如果要使用此选项,则需要启用mbstring。您可以通过检查是否加载了扩展程序来检查:

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