在 PHP 中,
mb_strtolower('İspanyolca');
退货
U+0069 i LATIN SMALL LETTER I
U+0307 ̇ COMBINING DOT ABOVE
U+0073 s LATIN SMALL LETTER S
U+0070 p LATIN SMALL LETTER P
etc.
我需要去掉“U+0307 ̇ COMBINING DOT ABOVE”;
我试过这个:
$TheUrl=mb_strtolower('İspanyolca');
$TheUrl=normalizer_normalize($TheUrl,Normalizer::FORM_C);
上面的组合点仍然存在。
如有任何帮助,我们将不胜感激。
您可以尝试 PHP 中的自定义函数来执行 Unicode 规范化,然后删除不属于基本拉丁字母的字符。 例如 -
function removeDiacritics($str) {
$normalizedStr = Normalizer::normalize($str, Normalizer::FORM_C);
$cleanStr = preg_replace('/[^a-zA-Z]/', '', $normalizedStr);
return $cleanStr;
}
$TheUrl = mb_strtolower('İspanyolca');
$TheUrl = removeDiacritics($TheUrl);
echo $TheUrl;