0

我尝试将带有特殊字母(例如 ä、à、è、ç、î、ñ.ö 等)的字符串转换为 ascii 字母。我的例子:

String newName = oldName.replaceAll("\\s","").replaceAll("[^a-zA-Z0-9]", "");

这很好用,除了所有特殊字母都消失了......有没有一种简单的方法可以将这些字母“转换”为 ascii 格式?

例如,“François Müdé”将变为“francoismuede”。我应该如何实现这个?

4

1 回答 1

1

一般来说,ASCII这是一个非常糟糕和陈旧的字符表,它实际上不包含想要的字符。

但是你的ASCII问题呢,它与表无关。Java 与unicode. 您需要的只是将此类符号包含到您的正则表达式中,例如[^a-zA-Z0-9äàèçîñö].

核心问题是诸如a-zA-Z(称为symbol classes)之类的常规结构不包含此类特殊的国家符号。您必须手动包含它们。

于 2013-06-05T09:12:19.320 回答