Win7-HUN,UTF8 PHP 文件。
function Test($Msg){
$Result = "";
$ReplFrom = "ő";
$ReplTo = "ö";
for($i=0; $i<mb_strlen($Msg); $i++){
$c = mb_substr($Msg, $i, 1);
echo($c);echo("<br>");
}
}
Test('őű');
这个显示不错:“őű”
我想用“ö”一个接一个地替换“ő”,因为我想检查许多其他事情。
function Test($Msg){
$Result = "";
$ReplFrom = "ő";
$ReplTo = "ö";
for($i=0; $i<mb_strlen($Msg); $i++){
$c = mb_substr($Msg, $i, 1);
$add = $c;
$h = mb_substr($ReplFrom, 0, 1);
if ($c == $h) {
$add = $ReplTo;
echo("found");
}
$Result = $Result.$add;
}
return $Result;
}
有趣的是发现所有字符,结果是错误的。
简化为连接:
$what = 'ő';
$replto = "ö";
echo($what.$replto);
这很好。
$what = mb_substr('ő', 0, 1);
$replto = mb_substr("ö", 0, 1);
echo($what.$replto);
这是错误的。
我做错了什么?我想插入每个 MB 字符,并检查它。如果其中一些需要,我必须更换。如果其中一些是非法的,则用“”替换它们。等等。最后连接到一个字符串。
例如:“álmos ő körben + 2” “álmos ö körben 2”
但是我的代码有问题。我想使用 UTF8 字符,因为我有 MultiByte 输入和 UTF8 或 16 XML。有些服务器是英语的,有些是匈牙利语的(编码不同)。
但有趣的是,当我想使用 MB 字符时出现问题。也许连接会导致这种情况?
非常非常感谢这个主题的每一个进步!
问候:dd