2012-06-27 5 views
1

타사 API/웹 서비스를 다루고 있으며 해당 XML에 latin-1 문자 집합 만 허용합니다. 문자열에있는 모든 비 라틴 -1 문자를 찾아서 바꿀 수있는 기존 API/메소드가 있습니까?API 또는 모든 비 라틴 -1 문자를 바꾸는 방법

예 : 케빈

어쨌든 케빈을 만들 수 있습니까? 내가 자바 1.6 필요한 정규화가 될 수 내장에서 http://glaforge.appspot.com/article/how-to-remove-accents-from-a-string

에서이 예제를 발견

public String removeAccents(String text) { 
    return Normalizer.decompose(text, false, 0) 
       .replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); 
} 

ICU4J를 사용

+1

무엇으로 바꾸시겠습니까? – bmargulies

+0

@bmargulies 내 질문을 업데이트했습니다. – Gregg

+0

'K é vin'을 사용하지 않으려면 (간단한 텍스트 편집기에서 열 때) 바이트 스트림에서 제거하려면, 실제로는 XMl 인포 셋에서 제거하십시오 XML 파서가 응용 프로그램으로 읽습니다.) – MvG

답변

2

.

+0

최소한 주어진 예제에 대해 아주 좋은 첫 번째 시작. 그러나 ASCII 문자로 분해되지 않고 발음 구별 기호를 결합하지 않는 유니 코드 코드 포인트가 있기 때문에 결과가 ASCII 전용이라는 보장은 없습니다. – MvG

+0

모든 모호한 경우에 정말로 대처하고 싶다면 코드를 작성해야합니다. ICU4J 트랜스 코더 객체 일 가능성이 있습니다. 내가DEGREE CELSIUS를 C로 바꾸거나, L에 대담하게 대문자를 L로 바꾸는 것과 같은 모든 이상한 가능성이 있음을 알고 있습니다. – bmargulies

+0

또는 변환 할 수없는 코드 포인트를 감지하고 적절하게 응답하고, 작업을 중단하고, 사용자에게 물어보십시오. – MvG

관련 문제