Win7-HUN, UTF8 PHP 파일. 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('őű');
이 보여주는 좋은 "오우"
나는 많은 다른 것들을 확인하기 원하기 때문에, "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.
예를 들어: "álmos O 코벤 + 2" "álmos ö 코벤 2"
하지만 뭔가 내 코드에서 잘못된 것입니다. MultiByte 입력 및 UTF8 또는 16 XML이 있기 때문에 UTF8 문자를 사용하고 싶습니다. 그리고 일부 서버는 영어이고 일부는 헝가리어입니다 (인코딩이 다릅니다).
하지만 MB 문자로 작업하고 싶을 때 문제가 발생한다는 것은 흥미 롭습니다. 어쩌면 concatentation이 원인입니까?
이 주제에 대한 모든 발전에 대해 매우 감사드립니다.
감사합니다 : DD는
무엇이 잘못 되었습니까? 그 결과는 무엇입니까? – deceze
해석 할 수없는 문자가 있습니다. – durumdara