2013. 12. 24.

java utf-8 euc-kr 변환 관련..

일반 적인 변환 방법..

[euc-kr to utf-8]
String euc-kr = "한글 EUC-KR to UTF-8";
String utf-8 = new String(euc-kr.getBytes("euc-kr"), "utf-8");

[utf-8 to euc-kr]
String utf-8 = "한글 UTF-8 to EUC-KR";
String euc-kr = new String(utf-8.getBytes("utf-8"), "euc-kr");


하지만 잘 안되는 경우도 많다.
특히 이기종간을 오고가는 통신 상황에선..


[상황]
A > euc-kr (tcp/ip) > B > (http) > C > utf-8 (http) > B > euc-kr (tcp/ip) > A

이렇게 전달되어야 하는 상황...
B 는.. C 로 부터 openConnection 을 하고 나서 data 를 utf-8 로 읽어 들인다..
해서 DB 에도 넣고.. 이런 저런 처리를 한 후
다시 A 한테 euc-kr 로 넘겨야 한다..
이때.. 저 위의 상황으로 하면.. 말도 안되는 값으로 변환되어 돌아다니게 된다..

이떄는..
string 을 byte 로 변환하고..
변환할때 utf-8 로 바꾼 후
byte 로 돌아댕기도록 한다..


결론..
이기종간 data 들이 오고 갈때는
byte로 처리하는 것이 매우 좋다..

댓글 없음:

댓글 쓰기