Php 帮助替换字符
希望有人能帮上忙 我正在尝试编写一个函数来替换特殊字符并返回正确的字符 这就是我到目前为止所做的:Php 帮助替换字符,php,Php,希望有人能帮上忙 我正在尝试编写一个函数来替换特殊字符并返回正确的字符 这就是我到目前为止所做的: function convertlatin($output){ $latinchar = array("€", "‚","Æ'","„","…","‡","ˆ","‰","Å","‹","Å'",'Ž','‘','’','“','â€','•','â€"','â€"','Ëœ','â"¢','Å¡','›','Å"',"ž",'Ÿ
function convertlatin($output){
$latinchar = array("€", "‚","Æ'","„","…","‡","ˆ","‰","Å","‹","Å'",'Ž','‘','’','“','â€','•','â€"','â€"','Ëœ','â"¢','Å¡','›','Å"',"ž",'Ÿ','¡','¢','£','¤','Â¥','¦','§','¨','©','ª','«','¬','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼',"½",'¾','¿','À','Ã','Â','Ã','Ã"','Ã…','Æ','Ç','È','É','Ê','Ë','ÃŒ ','Ã','ÃŽ','ß','Ã',"Ã'","Ã'",'Ã"','Ã"','Õ','Ö','×','Ø','Ù','Ú','Û','Ãœ','Ã','Þ','ß','Ã','á','â','ã','ä','Ã¥','æ','ç','è','é','ê','ë','ì','Ã','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý',"þ","ÿ");
$correctchar = array("€", "‚","ƒ",'"','…','‡','ˆ','‰',"Š",'‹','Œ','Ž',"'","'",'"','"','•','–','—','˜','™','š','›','œ','ž','Ÿ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ',"ÿ");
$returnval = str_replace($latinchar, $correctchar, $output);
echo($returnval);
return $returnval;
}
我遇到的问题是,我认为它在工作,但它有随机结果,例如,如果它只在其中一个字符上找到匹配项,它将替换该数组中的另一个字符。我想做的是在提供的字符串中查找并替换拉丁字符的精确匹配,例如“testingÃÿ”与“testingÿ”—在mo中,它将Ãÿ替换为testingÿÿ
它似乎只是在某些情况下替换了一个字符,我希望它匹配并替换两个参数
我也尝试过strcmp,但没有多大成功
有什么想法吗?看起来你的问题不是字符错误,而是编码错误。也许您最好尝试更改$output的编码。utf8_编码对您没有帮助,“错误”字符看起来像一些错误转换的Windows-1252-input 尝试:
看起来你的问题不是字符错误,而是编码错误。也许您最好尝试更改$output的编码。utf8_编码对您没有帮助,“错误”字符看起来像一些错误转换的Windows-1252-input 尝试:
代码没有任何错误-它应该正常工作。能给我们举一些“边缘案例”的例子吗。在这里,它是“变成”而不是“一些确实有用”,但它似乎是“的出现”,特别是它只是转换一个字符而不是两个字符。我假设它首先遇到了Ã并进行了改变?谢谢你的评论,我试着用标题、htmlentities和utf8_编码来改变编码,但它们似乎都不起作用。更广泛的问题实际上是编码。我继承了一个定制的CMS系统,该系统存在广泛的编码问题,希望这是一种解决方法。代码没有任何错误-它应该正常工作。能给我们举一些“边缘案例”的例子吗。在这里,它是“变成”而不是“一些确实有用”,但它似乎是“的出现”,特别是它只是转换一个字符而不是两个字符。我假设它首先遇到了Ã并进行了改变?谢谢你的评论,我试着用标题、htmlentities和utf8_编码来改变编码,但它们似乎都不起作用。更广泛的问题实际上是编码。我继承了一个定制的CMS系统,该系统存在广泛的编码问题,希望这是一种解决方法。
echo mb_convert_encoding('testingÿ','CP1252','UTF-8');