在java中将特殊字母转换为ascii字母

时间:2013-06-05 09:00:35

标签: java string replace ascii letters

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

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

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

例如“FrançoisMüdé”将成为“francoismuede”。 我该如何实现呢?

1 个答案:

答案 0 :(得分:1)

一般来说,ASCII是非常差的旧字符表,实际上它不包含想要的字符。

但是你的问题呢,它与ASCII表无关。 Java与unicode一起使用。您需要的就是将这些符号包含在正则表达式中,例如[^a-zA-Z0-9äàèçîñö]

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