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

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




티스토리 툴바