윈도우에서 잘 돌아갔던 자바 프로그램을
우분투 리눅스에서 돌려봤다.
java가 플랫홈인디팬던트언어니 문제 없이 잘 돌아갈거라 생각했었다
그런데 으응?
프로그램상에서 출력하는 부분은 한글이 잘 나오는데,
소켓으로 주고받는곳에서 이상하게 깨져나왔다 @.@
한참을 삽질했다 ..
하다하다 안되서 어떤분에게 물어봤더니
getBytes() 에 캐릭터셋을 지정 안해주면 시스템 기본으로 읽는다더라..
라는 말에
다음과 같은 소스를 작성해 리눅스와 윈도우에서 돌려보았다
[CODE type="java"]
class test
{
public static void main(String args[]){
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
}
}
[/HTML][/CODE]
다음과같이 고쳐줬다
소켓에서 읽어오는 부분...
[CODE type="java"]
return new String(inbuf.toByteArray(),"MS949");
[/HTML][/CODE]
소켓으로 보내는 부분...
[CODE type="java"]
out.write(ws.getBytes("MS949"));
[/HTML][/CODE]
우분투 리눅스에서 돌려봤다.
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]