1
Win7-HUN,UTF8 PHP文件。PHP多字節字符串concat和比較?
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('őű');
這顯示出良好:「OU」
我想更換「O」與「ö」,而是一個接一個,因爲我要檢查很多其他的事情。
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;
}
有趣的是,發現所有的字符,結果是錯誤的。
簡體到CONCAT:
$what = 'ő';
$replto = "ö";
echo($what.$replto);
這是一件好事。
$what = mb_substr('ő', 0, 1);
$replto = mb_substr("ö", 0, 1);
echo($what.$replto);
這是不對的。
我做錯了什麼? 我想進入每個MB字符,並檢查它。如果其中一些需要,我必須更換。 如果其中一些是非法的,請用「」替換它們。等。 並在最後concat到一個字符串。
例如: 「ALMOSØkörben+ 2」 「ALMOSökörben2」
但什麼是錯在我的代碼。 我想使用UTF8字符,因爲我有MultiByte輸入,而UTF8或16 XML。 而一些服務器是英語,一些匈牙利語(編碼是不同的)。
但有趣的是,當我想要使用MB字符時出現錯誤。 也許聯合導致這種情況?
非常感謝這個主題的每一個進步!
問候: DD
這究竟是什麼錯誤的東西呢?結果是什麼? – deceze
我得到的不可理解的人物。 – durumdara