프로그래밍 정리/안드로이드

[기타강좌] 유니코드 정규화 Normalizer

주누다 2012. 7. 6. 17:23
반응형

주소 : http://www.androidside.com/plugin/mobile/board.php?bo_table=B46&wr_id=39275&sca=%EA%B8%B0%ED%83%80%EA%B0%95%EC%A2%8C



회사에서 업무용 앱을 개발하다가 맥에서 올린 파일중 한글이 안드로이드에서 자음과 모음이 

분리되서 깨지는 현상때문에 삽질을 해서 잊지 않기 위해서 올립니다....
그리고 혹시나 저같은 사람이 있을까봐 삽질 방지 차원에서 올립니다....

문제는 맥에서 사용하는 한글의 유니코드 값과 안드로이드에서 사용하는 유니코드의 값이 달라서 문제가 됩니다. 
자세한 내용은 검색을 해보시길 바랍니다. (http://namoda.springnote.com/pages/4922363)

이 문제를 해결하기 위해서는 Normalizer를 사용 하시면 됩니다. 
자바는 SE6, 안드로이드는 2.3 이후 사용이 가능합니다. 

String nfd = Normalizer.normalize("문자열", Normalizer.Form.NFD);
Normalizer의 폼 NFD를 사용하면 한글의 자음과 모음이 모두 분리됩니다. 
이 분리된 한글을 NFC를 통해서 다시 조합하게되면 안드로이드에서 문자가 깨지지 않고 보이게 됩니다. 
String nfc = Normalizer.normalize(nfd, Normalizer.Form.NFC);

삽지하면서 테스트해본결과 굳이 NFD를 통해서 한글을 분리하지 않아도 NFC를 이용하면 
한글이 깨지지는 않았습니다. 

저와같은 문제로 고민하는 사람이 없었으면 좋겠네요...

반응형