2009-12-26 97 views
4

如何將Æá轉換爲帶Java的常規英文字符?我擁有的是這樣的:來自Paran的本地電視á。如何將其轉換爲[Parana]?如何將重音字母轉換爲Java中的常規字符

+0

這個問題http://stackoverflow.com/questions/1008802/converting-symbols-accent-letters-to-english重複-alphabet請參考該問題的回答 – brianpeiris 2009-12-26 18:13:44

+0

Æ對應於int值爲198的字符。 – 2009-12-26 21:29:49

回答

6

看ICU4J或JDK 1.6正規化:

public String removeAccents(String text) { 
    return NNormalizer.normalize(text, Normalizer.Form.NFD) 
        .replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); 
} 
+0

您可能的意思是「Normalizer.normalize(text,Normalizer.Form.NFD)」,而不是「Normalizer.decompose(text,false, 0)「 – 2009-12-26 18:58:41

+0

我想我不小心把舊太陽。上課計劃。感謝您的支持。 – bmargulies 2009-12-26 19:42:32

+0

Normalizer.Form.NFKD可能比Normalizer.Form.NFD更適合他的用途,具體取決於他想如何處理連字。例如:NFKD將把「fi」變成「fi」。 – 2009-12-26 21:34:59

0

據我所知,沒有辦法自動做到這一點 - 你必須使用String.replaceAll手動替換。

String str = "Paraná"; 
str = str.replaceAll("á", "a"); 
str = str.replaceAll("Æ", "a"); 
相關問題