我正在尝试遍历包含法语字符的字符串。我有一系列我想要匹配的特定法语字符。
示例:
header("Content-Type: text/html;charset=utf-8");
$string = "HÂPPY Ç" ;
echo $string;//displays correctly
echo "<br>";
$frenchArray = Array('Â','Ç');
for($i=0;$i<mb_strlen($string);$i++)
{
$t = utf8_encode(mb_substr($string,$i,1));
echo "Checking:" . $t . "<br>";
for($x=0;$x<count( $frenchArray);$x++)
{
if($t==$frenchArray[$x])
{
echo "Matched: " . $t . " to " . $frenchArray[$x]."<br>";
}
}
}
这给了我没有比赛:
Checking:H
Checking:Ã
Checking:
Checking:P
Checking:P
Checking:Y
Checking:
Checking:Ã
Checking:
我注意到&#34;检查:&#34;
中的字符显示不正确似乎我在这里缺少一些简单的东西,感谢任何帮助!
答案 0 :(得分:0)
好像我错过了&#34;,&#39; UTF-8&#39;&#34; &#34; mb _&#34;的一部分。感谢您链接到Luke文章。
正确的代码应该是:
for($i=0;$i<mb_strlen($string,'UTF-8');$i++)
{
$t = mb_substr($string,$i,1,'UTF-8');
echo "Checking:" . $t. "<br>";
for($x=0;$x<count( $frenchArray);$x++)
{
if(preg_match('/'.$t.'/',$frenchArray[$x]))
{
echo "Matched: " . $t . " to " . $frenchArray[$x]."<br>";
}
}
}