1

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

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

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

4

2 回答 2

3

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

于 2014-04-10T00:28:48.147 回答
2

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

mb_internal_encoding("UTF-8");
$string = "אבגד הוזח טי";
$find = "הוזח";
$pos = mb_strpos($string, $find);
echo $pos; //5
于 2014-04-10T00:39:48.520 回答