시스템언어설정과 소켓프로그램에서 데이터를 받아드리는것과의
글쓴이: rokmn3309 / 작성시간: 토, 2004/07/24 - 1:55오전
안녕하세요..
현재 사용하고 있는 시스템은 whitebox 3.0입니다.
설치되어 있는 프로그램은 apache 2.0.49, mysql 4.0.2,php-4.3.6,sendmail-8.12.11,openssl-0.9.7d과
j2re1.4.2 , j2sdk1.4.2를 설치해서 사용하고 있습니다.
자바소켓서버와 flash의 xmlsocket과 통신을 하는걸 만드는도중에..
서버의 언어설정에 따라서 해석을 못하는 문제가 있어서..
질문드립니다.
서버의 언어설정이 ja_JP.eucJP로 되어 있는 경우에..
자바소켓에서 받아드린 데이터를 헥사코드로 출력해보면은..
넘어오는 일본어나 한국어는 FFFD나 뭐 그런 알수 없는 값으로 찍힙니다.(?표시됨)
서버의 언어설정을 ja_JP.utf8로 바꾸고 하면은 제대로된 헥사값이 나오고.
출력도 잘됩니다.
문제는. 기존에 서비스하는 서버가 ja_JP.eucJP로 되어 있어서. 이걸 ja_JP.utf8로 변환시에 문제가 될게 많을것 같은데..
어떤가요??
그리고 자바단에서 컴파일시에 encoding옵션을 줘도 문제는 동일하던데 자바자체적으로 해결될수 없을까요?
읽어주셔서 감사합니다.
수고하세요.
Forums:
자바 소켓 서버의 file.encoding property를 UTF-8로
자바 소켓 서버의 file.encoding property를 UTF-8로 세팅해주신 후 실행시켜보시죠..
System.setProperty("file.encoding=UTF-8");
단, 이렇게 바꾸셨더라도 자바 소켓 서버가 돌고 있는 서버의 터미널에
System.out.println 으로 flash의 xmlsocket으로 부터 들어오는 문자열을
그대로 찍으면 깨져보일껍니다. 자바 소켓 서버의 encoding과 서버의 터미널
encoding이 틀릴테니까요.
StreamReader나 StreamWriter에 charset을 지정해
StreamReader나 StreamWriter에 charset을 지정해보세요.
----
I paint objects as I think them, not as I see them.
atie's minipage
음.....
안녕하세요..
답변주셔서 감사합니다.
System.setProperty("file.encoding=UTF-8") 을 코드에 추가후 컴파일하거나 컴파일 옵션에 encoding utf8을 줘도
제대로 동작하지 않았습니다.
소켓에서 받을때.. 제대로 받지 못하는것 같습니다.
컴파일은 되어 있는 상태에서 터미널에서 자바서버를 실행시키기전에 export LC_CTYPE=ja_JP.utf8 해주고
실행시키면은 제대로 동작합니다.
띄운후 다시 export LC_CTYPE=ja_JP.eucJP로 바꾸어줘도 문제가 없었습니다.
export 로 LC_CTYPE=ja_JP.utf8 해주고 서버를 실행시켰을때 다른 데몬에 영향을 주지는 않을까요?
부팅될때.. rc.local에서 bash로 java데몬을 실행시킬때 이 옵션을 넣어주면은
될듯한데 다른 서버프로그램에 영향이 있는지 알고 싶습니다.
댓글 달기