str_replace不会用没有重音的字母替换重音字母。这有什么问题?
返回预期结果:
<?php
$string = get_post_custom_values ("text");
// Say get_post_custom_values ("text") equals "José José"
$string = str_replace(" ", "-", $string);
echo $string [0];
// Output "José-José"
?>
这不起作用:
<?php
$string = get_post_custom_values ("text");
// Say get_post_custom_values ("text") equals "Joseph Joseph"
$string = str_replace("é", "e", $string);
echo $string [0];
// Output "José José". Nothing has changed
?>
注意:使用GoogleTranslate从葡萄牙语翻译。
答案 0 :(得分:1)
删除每个重音字母的简单,安全的方法是使用iconv:
setlocale(LC_ALL, "fr_CA.utf8"); // for instance
$output = iconv("utf-8", "ascii//TRANSLIT", $input);
您当前的问题很可能是由不同的编码引起的。
答案 1 :(得分:0)
源代码中保存的字符é
与您从get_post_custom_values
返回的数据不在同一编码中。编码不匹配→未识别为相同字符→未替换。