윈도우에서 잘 돌아갔던 자바 프로그램을
우분투 리눅스에서 돌려봤다.

java가 플랫홈인디팬던트언어니 문제 없이 잘 돌아갈거라 생각했었다
그런데 으응?

프로그램상에서 출력하는 부분은 한글이 잘 나오는데,
소켓으로 주고받는곳에서 이상하게 깨져나왔다 @.@

한참을 삽질했다 ..

하다하다 안되서 어떤분에게 물어봤더니
getBytes() 에 캐릭터셋을 지정 안해주면 시스템 기본으로 읽는다더라..
라는 말에

다음과 같은 소스를 작성해 리눅스와 윈도우에서 돌려보았다
[CODE type="java"]
class test
{
               public static void main(String args[]){
                               System.out.println("file.encoding=" + System.getProperty("file.encoding"));
               }
}
[/HTML][/CODE]


리눅스
$ java test
file.encoding=UTF-8

윈도우
java test
file.encoding=MS949
-_-;;;
다음과같이 고쳐줬다

소켓에서 읽어오는 부분...
[CODE type="java"]
      return new String(inbuf.toByteArray(),"MS949");
[/HTML][/CODE]

소켓으로 보내는 부분...
[CODE type="java"]
  out.write(ws.getBytes("MS949"));
[/HTML][/CODE]

'개발 > Java' 카테고리의 다른 글

JFrame 뜨면서 포커싱이 안가게 하기  (1) 2007.02.15
한글입력기  (3) 2006.12.21
java socket encoding 삽질기  (3) 2006.09.10
ArrayList 연습  (1) 2006.09.05
Dc to Hdd 1.0 Release  (0) 2006.08.21
나는야 버그 제조기  (3) 2006.08.04
  1. LinDol 2006.10.09 23:07 댓글주소 | 수정 | 삭제 | 댓글

    감사 감사 :D

  2. Shinnara 2007.09.05 17:01 댓글주소 | 수정 | 삭제 | 댓글

    정말 유용한 팁 감사합니다~~~~

  3. 녹풍 2010.03.21 19:40 댓글주소 | 수정 | 삭제 | 댓글

    덕분에 결정적인 실마리를 얻어서 소켓통신 오류를 해결했습니다. 피말리는 상황이었는데 정말 감사합니다. ^^