为什么substr()错误计算阿拉伯字符串?

时间:2015-07-29 13:17:39

标签: php substring

我有一个包含9个阿拉伯字符的php变量。但是当我在9中设置substr()时,输出为4个字符。为什么?我该如何解决?

here是我的演示。

这是我的代码:     

$str = 'سلام جهان'; 
// the number of character: 9 character {س|ل|ا|م| |ج|ه|ا|ن}

echo substr($str, 0, 9);

// output: سلام

?>

1 个答案:

答案 0 :(得分:2)

尝试使用多字节等效项:

mb_internal_encoding("UTF-8");
$string = "سلام جهان";
$mystring = mb_substr($string,5,1);
echo $mystring;

您还可以使用my_substr设置标志:

mb_substr($string, 5,1, "utf-8");