strpos在希伯来语中返回错误的位置



我需要帮助。。。我有希伯来文php字符串,我想要子字符串的搜索位置。我的代码:

$string = "אבגד הוזח טי";
$find = "הוזח";
$pos = strpos($string, $find);
echo $pos;

strpos找到了子字符串,但返回了错误的位置值。它返回$pos值9而不是5。为什么strpos在希伯来语字符串中不起作用?你能帮我吗?

尝试使用mb_strpos。您必须使用mb_internal_encoding将内部字符编码设置为UTF-8

mb_internal_encoding("UTF-8");
$string = "אבגד הוזח טי";
$find = "הוזח";
$pos = mb_strpos($string, $find);
echo $pos; //5

希伯来语字符串使用多字节字符,因此每个"字符"的长度可以是2个或多个字符,而不是像大多数基于拉丁语的字符那样为1。您可能希望了解应用程序的PHP多字节字符串函数。

最新更新