2011-08-10 2 views
0

누군가 도움을 받으시기 바랍니다.문자 교체에 대한 도움말

특수 문자를 대체하고 올바른 문자를 반환하는 함수를 작성하려고합니다.

내가 지금까지 무엇을 가지고 :

function convertlatin($output){ 

    $latinchar = array("€", "‚","Æ'","„","…","‡","ˆ","‰","Å","‹","Å'",'Ž','‘','’','“','â€','•','â€"','â€"','Ëœ','â"¢','Å¡','›','Å"',"ž",'Ÿ','¡','¢','£','¤','Â¥','¦','§','¨','©','ª','«','¬','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼',"½",'¾','¿','À','Ã','Â','Ã','Ã"','Ã…','Æ','Ç','È','É','Ê','Ë','ÃŒ ','Ã','ÃŽ','ß','Ã',"Ã'","Ã'",'Ã"','Ã"','Õ','Ö','×','Ø','Ù','Ú','Û','Ãœ','Ã','Þ','ß','Ã','á','â','ã','ä','Ã¥','æ','ç','è','é','ê','ë','ì','Ã','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý',"þ","ÿ"); 
    $correctchar = array("€", "‚","ƒ",'"','…','‡','ˆ','‰',"Š",'‹','Œ','Ž',"'","'",'"','"','•','–','—','˜','™','š','›','œ','ž','Ÿ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ',"ÿ"); 

    $returnval = str_replace($latinchar, $correctchar, $output); 

    echo($returnval); 
    return $returnval; 
} 

내가 가진 문제를 나는 그것이 작동했지만이 같은 그것이 대체 문자 하나에 일치하는 항목을 찾은 경우 무작위 결과를 가지고 생각입니다 그 배열에 다른 하나. 내가 무엇을하고 싶습니다 제공 문자열 내에서 라틴어 문자의 정확한 일치를 찾아 교체 "예" "testingÿ"와 함께 - 모에 그것은 테스터와 대체합니다.

단지 하나를 대체하는 것 같습니다 어떤 경우에는 문자를 사용하여 두 매개 변수를 일치시키고 바꿔야합니다.

나는 또한 많은 성공을 거둔 strcmp를 시도했다.

아이디어가 있으십니까?

+0

코드는되지 않은 오류가 - 올바르게 작동합니다. 이러한 '최후의 사례'에 대한 예를 들어 주실 수 있습니까? – foxy

+0

안녕하세요 - 이건 – mro

+0

입니다. 여기에 Ã ¿ ¿ 대신에 – mro

답변

6

문제가 잘못된 문자가 아닌 것 같습니다. 인코딩이 잘못되었습니다. $ 출력의 인코딩을 변경하는 것이 좋습니다. utf8_encode가 도움이되지 않습니다. "잘못된"문자가 잘못된 변환 된 Windows-1252 입력처럼 보입니다.

시도 :

echo mb_convert_encoding('testingÿ','CP1252','UTF-8');