如何在Java中将重音字母转换为常规字符
如何转换如何在Java中将重音字母转换为常规字符,java,char,Java,Char,如何转换Æ和á编码为常规英文字符?我拥有的是这样的东西:来自巴拉那州的本地电视台á。如何将其转换为[Parana]?据我所知,无法自动执行此操作——您必须使用手动替换 看看icu4j或JDK 1.6规范化器: public String removeAccents(String text) { return Normalizer.normalize(text, Normalizer.Form.NFD) .replaceAl
Æ代码>和á使用Java将>编码为常规英文字符?我拥有的是这样的东西:来自巴拉那州的本地电视台á代码>。如何将其转换为[Parana]?据我所知,无法自动执行此操作——您必须使用手动替换
看看icu4j或JDK 1.6规范化器:
public String removeAccents(String text) {
return Normalizer.normalize(text, Normalizer.Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}
这个问题是重复的,请参考该问题的答案Æ;对应于int值为198的字符。您可能指的是“Normalizer.normalize(text,Normalizer.Form.NFD)”而不是“Normalizer.decompose(text,false,0)”,我想我是无意中把它放在了旧版本中。改为班级计划。感谢您的关注。就他的目的而言,Normalizer.Form.NFKD可能比Normalizer.Form.NFD更好,这取决于他想如何治疗韧带。例如:NFKD将“fi”
转换为“fi”
。表示replaceAll(“[^\\p{ASCII}]”,“”)代码>
public String removeAccents(String text) {
return Normalizer.normalize(text, Normalizer.Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}