<개발 환경>
mac os lion 10.7.3
eclipse 3.7.1 indigo
glassfish 3.1.2
java jdk 1.7
<문제>
console 창을 포함하여 몇군데에서 한글이 깨져서(물음표) 잘못 표시되는 현상
아래의 몇가지 정도를 확인하면 웬만큼 해결이 가능하다.
1-1. glassfish가 설치된 곳의 bin폴더에서 편집기 혹은 vi 로 asadmin 파일을 연다.
glassfish설치경로/bin/asadmin
1-2. 아래의 붉은색부분을 추가해준다
exec "$JAVA" -Dfile.encoding=UTF-8 -jar "$AS_INSTALL_LIB/admin-cli.jar" "$@"
2. terminal 을 열어서 glassfish가 설치된 곳의 bin폴더에서 붉은색을 실행한다.
./asadmin create-jvm-options -Dfile.encoding=UTF-8
3. glassfish admin console으로 접속한다. (일반적으로 http://localhost:4848/ )
< 구성 - Server Config - JVM 설정 - JVM 옵션 > 으로 들어가서
속성중에
< -Dfile.encoding=UTF-8 > 이 있는지 확인하고 없으면 추가해준다.
Eclipse on Mac (http://ids.snu.ac.kr/wiki/Eclipse) 아래 부분 참고
(Windows와 Linux에서는 발생하지 않는 문제임)
java file의 encoding을 UTF-8로 설정해도, 문자열을 제대로 출력하지 못하는 문제가 발생한다. Debug를 해보면 변수 안의 한글은 제대로 들어있으나, 콘솔에는 ???로 출력된다.
- System.out.println("한글")
- System.out.println(유니코드 문자열이 담긴 String)
이를 해결하기 위해서는 다음 두가지 인코딩 설정을 일치시켜야 한다.
VM 인코딩
- (Open Run Dialog) -> Arguments -> VM arguments 에서 -Dfile.encoding=UTF-8 추가
- (Open Run Dialog) -> Common -> Console Encoding 에서 UTF-8 설정
어처구니 없게도 기본 값을 설정하는 메뉴가 없다
파일 자체의 인코딩이 UTF-8인 것은 상관 없다. 실제로 Windows에서는 위 두 인코딩이 모두 MS949로 설정되어있다. 그러나 맥의 경우는 이것이 기본적으로 일치하지 않는지 문제가 생긴다. 위의 설정을 일일히 하기 귀찮으므로, 다음 두 가지 설정을 추가로 한다.
eclipse 를 UTF-8 환경으로 띄우기
- Eclipse -> (Show Package Contents) -> Contents -> MacODS -> eclipse.ini 에 -Dfile.encoding=UTF-8 추가
- 결과 상당 부분의 인코딩 기본 옵션이 UTF-8로 변한다 :) 콘솔 인코딩의 기본 값이 UTF-8로 바뀐다.
VM 인코딩
- Eclipse -> Preferences -> Java -> Installed JREs -> (선택된 JVM에서 Edit...) -> Default VM Arguments 에서 -Dfile.encoding=UTF-8 추가
-----------------------
추가 #1
위의 것으로도 해결이 되지 않을 경우 아래 링크를 참조한다.
File Encoding을 utf-8로 바꾸자#
특히 리눅스 같은 경우. 패키지로 등록을 했다면, 로그파일에 나오는 한글은 ?? 로 나타난다. 이런 이유는 기본적으로 iso-8859-1로 잡혀져 있기
때문인데, 정말 문제가 되는것은 파일 처리와 같은 것을 할 경우.. 문제가 될수 있다.
ㅇ 해결방법
- Admin Consol로 로그인(htt://서버IP:4848/) > server-config > JVM options 에 다음 내용을 추가 하면 된다.
- -Dfile.encoding=utf-8
ㅇ 발생하는 문제점
이경우 Netbeans에서 개발을 할 때 위와같이 적용을 하면 log보기에서 한글이 모두 꺠져 나온다. 원인은 NetBeans의 로그보기가
utf-8로 읽지 못해서 발생하는 결과다. 이때 [NetBeans Dir]\etc\netbeans.conf 를 열어
netbeans_default_options에 '-J-Dfile.encoding=UTF-8'를 추가 하면 된다
위의 것을 모두 실행하고도 이클립스 웹에서 인코딩이 깨진다면 eclipse 내장 브라우저의 문제일 수 있다.
임시방편으로 Eclipse-Preference-General-Web Browser-Use External web browser를 사용하도록 한다.
댓글 없음:
댓글 쓰기