강좌 & 팁
글 수 2,412
2012.09.23 15:19:19 (*.52.177.29)
44452
Java SE Embedded 7에서는 euc-kr문자셋을 지원하지 않는다. ㅠㅠ
네트워크 프로토콜로 받은 데이터를 euc-kr로 변환해 문자열을 표시를 해줘야하는데....
Java SE Embedded 7에서는 UnsupportedEncodingException에러가 발생합니다.
서포터를 안한다는거죠.
그래서 진짜 안하는건지 알아보기 위해 구글링을 해봤더니....
VM 지원 캐릭터셋을 확인 하는 방법이 있어서 올려봅니다.
이걸 사용할 사람이 얼마나 있을런지는 모르지만 지원한다 안한다 정도는 판단 할 수 있기 때문에
올려봅니다.
[샘플소스]
import java.nio.charset.Charset; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class JavaEncodingCheck { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Map<String, Charset> map = Charset.availableCharsets(); Iterator<Entry<String, Charset>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, Charset> entry = (Map.Entry<String, Charset>)it.next(); String key = entry.getKey(); Charset charset = entry.getValue(); System.out.println(key); Iterator<String> chaIt = charset.aliases().iterator(); while (chaIt.hasNext()) { System.out.println(" - " + chaIt.next()); } } } }
[실행결과]
PC용에는 캐릭터셋을 많이 지원하지만 임베디드용은 많이 안들어가 있더군요.(당연한 말 일 수도 있게지만....ㅜㅜ)
임베디드 Java에서는 지원을 안하기 때문에 어떻게 했나 궁금해 하실분도 있을런지 몰라 해결방법을 얘기하자면
저는 OpenJDK6으로 일단 올려서 사용하고 있습니다. (PC용과 동일한 버전임.....ㅡㅜ)
근본적인 해결 방법은 왠만하면 UTF-8로 사용합시다. ^^;
감사합니다.