Java 에서 SWT Combo 박스에 Item 추가 작업을 하다가 Linux 환경에서는 text 가 제대로 나오는데 Windows 에서는 text 앞부분에 이상한문자가 붙어서 나오는 현상을 경험하게 되었다.
Windows 에서 다음과 같이 "ar-ae" 앞에 이상한 문자가 껴있었다.
디버깅을 해도 전혀 이상한 점이 없어서 삽질을 하던중 구글링을 통해 UTF-8 인코딩시 BOM(Byte Order Mark) 라는 것을 알게 되었다.
BOM 은 UTF-8 로 인코딩되었다는 일종의 마킹인데, 윈도우즈에서 일부 프로그램에서는 BOM 을 강제로 삽입하는 경우가 있다고 한다. -_-;
참고: http://blog.wystan.net/2007/08/18/bom-byte-order-mark-problem
따라서 이를 제거해야 하는데, Edit Plus 와 같은 툴을 이용하는 등의 방법이 있다.
본인은 해당 파일을 Edit Plus 에서 UTF-8 BOM 이 추가안되도록 설정한 상태에서 해당 문자를 지우고 다시 타이핑하였더니 해당 문제가 사라졌다.
Gerrit 에서 봐도 사람이 봐서는 알 수 가 없다.
하지만 hex viewer 로 보면 다음과 같이 EF BB BF 라는 문자가 삽입되어 있다.
문자열이 알 수 없는 문제로 말썽을 일으킬때 한번 살펴보아야 할 부분인것 같다.
리눅스에서 텍스트 파일 인코딩을 변경하려면 iconv 나 uconv 명령을 사용하여 인코딩을 변경 할 수 있다.
'Java' 카테고리의 다른 글
[JSP] Scriptlet (0) | 2014.08.26 |
---|---|
[Java] Schema Validation 수행시 XSD 파일간의 파일관계가 복잡할경우 Resolver 이용하기 (0) | 2013.12.10 |
[Java] Invalid Thread Access Error with Java SWT (0) | 2013.10.02 |
[Java] Web Resource Compressor Framework (0) | 2013.05.12 |
[Java] Eclipse 에서 Specified VM install not found 에러가 발생하는 경우 (0) | 2013.04.22 |