2013-06-05 6 views
0

특수 문자 (예 : ä, à, è, ç, î, ñ.ö ect.)가있는 문자열을 ASCII 문자로 변환하려고합니다. 내 예 :특수 문자를 자바 아스키 문자로 변환

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

이 모든 특수 문자가 사라질 것을 제외하고 잘 작동 ... 아스키 형식으로이 편지를 "전환"할 수있는 간단한 방법이 있을까요?

예를 들어 "François Müdé"는 "프랑소와 게"가됩니다. 어떻게 구현해야합니까?

+3

java.text.Normalizer.normalize()를 사용해 볼 수 있습니다. 이 함수는 유니 코드의 문자열 정규화와 관련된 서비스를 제공합니다. 이 질문보기 : http://stackoverflow.com/questions/1008802/converting-symbols-accent-letters-to-english-alphabet –

답변

1

일반적으로 ASCII은 매우 형편없고 오래된 문자 표이며 실제로 원하는 문자가 포함되어 있지 않습니다.

문제는 ASCII와 관련이 없습니다. Java는 unicode으로 작동합니다. 당신이 필요로하는 것은 [^a-zA-Z0-9äàèçîñö]과 같은 것을 당신의 정규 표현식에 포함시키는 것입니다.

핵심 문제는 a-z 또는 A-Z (symbol classes)과 같은 규칙적인 구조가 이러한 특수 국가 기호를 포함하지 않는다는 것입니다. 수동으로 포함시켜야합니다.

관련 문제