你想要的是某种“ SLUGifying ”把短语变成一个 URL,所以它是 SEO 友好的。
一旦我遇到了这个问题,我就开始使用maddemcode.com中提供的解决方案。您将在下面找到其改编代码。
Normalize
诀窍是通过一些额外的清理来正确使用JDK 类。用法很简单:
// casingchange-aeiouaeiou-takesexcess-spaces
System.out.println(slugify("CaSiNgChAnGe áéíóúâêîôû takesexcess spaces "));
// these-are-good-special-characters-sic
System.out.println(slugify("These are good Special Characters šíč"));
// some-exceptions-123-aeiou
System.out.println(slugify(" some exceptions ¥123 ã~e~iõ~u!@#$%¨&*() "));
// gonna-accomplish-yadda
System.out.println(slugify("gonna accomplish, yadda, 완수하다, 소양양)이 있는 "));
功能代码:
public static String slugify(String input) {
return Normalizer.normalize(input, Normalizer.Form.NFD)
.replaceAll("[^\\p{ASCII}]", "")
.replaceAll("[^ \\w]", "").trim()
.replaceAll("\\s+", "-").toLowerCase(Locale.ENGLISH);
}
在源页面(http://maddemcode.com/java/seo-friendly-urls-using-slugify-in-java/)中,您可以查看它的来源。不过,上面的小片段也是一样的。
如您所见,有一些特殊字符未转换。据我所知,翻译它们的每个人都使用某种地图,例如 Djago 的 urlify(请参见此处的示例地图)。你需要它们,我相信你最好的选择是做一个。