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

Php 为什么substr()的阿拉伯字符串计数错误?,php,substring,Php,Substring,我有一个php变量,包含9个阿拉伯字符。但是当我在substr()中设置9时,输出是4字符。为什么?我怎样才能修好它 这是我的演示 这是我的密码: $str = 'سلام جهان'; // the number of character: 9 character {س|ل|ا|م| |ج|ه|ا|ن} echo substr($str, 0, 9); // output: سلام ?> 尝试使用多字节等效项: mb_internal_encoding("UTF-8"); $

我有一个php变量,包含9个阿拉伯字符。但是当我在
substr()
中设置
9
时,输出是
4
字符。为什么?我怎样才能修好它

这是我的演示

这是我的密码:
$str = 'سلام جهان'; 
// the number of character: 9 character {س|ل|ا|م| |ج|ه|ا|ن}

echo substr($str, 0, 9);

// output: سلام

?>

尝试使用多字节等效项:

mb_internal_encoding("UTF-8");
$string = "سلام جهان";
$mystring = mb_substr($string,5,1);
echo $mystring;
您还可以使用my_substr设置标志:

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

为了帮助社区,请将答案标记为正确。请将此添加到您的答案中:您也可以使用
mb_substr($string,5,1,“utf-8”)绝对正确。好主意。