mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Saturday, November 25, 2006

Java/자바] 한글 확장 완성형; MS949 / cp949 인코딩(Encoding) 문제 해결; 차이, 차이점


자바에서는 MS949 와 cp949 가 약간 다른 인코딩이었습니다.


MS949 : 한글 확장 완성형 (똠방각하 표현 가능)

cp949 / euc-kr : 한글 완성형 (똠방각하 불가능)



소스 파일의 인코딩을 명시적으로 지정해 줄 때 "똠"자를 처리하지 못하고
warning: unmappable character for encoding cp949
이런 경고가 출력되었고, "똠"자가 "?c"라는 글자로 깨졌습니다.


예를 들어 다음과 같습니다:


소스 파일명: Foo.java
public class Foo {
  public static void main(String[] args) {

    System.out.println("가나다라 똠방각하");

  }
}


이런 소스를 컴파일하고 실행하면:

1번째 실행 때는, 시스템 기본 인코딩을 사용했기에 문제가 없습니다.

2~4번째 실행 때는 cp949 등의 인코딩을 지정했기에 "똠"자가 깨졌습니다.

5번째 실행 때는 MS949 인코딩을 지정했기에 정상적으로 출력되었습니다.

D:\Z>javac Foo.java && java Foo
가나다라 똠방각하

D:\Z>javac -encoding cp949 Foo.java && java Foo
Foo.java:4: warning: unmappable character for encoding cp949
    System.out.println("가나다라 똠방각하");
                             ^
1 warning
가나다라 ?c방각하

D:\Z>javac -encoding 949 Foo.java && java Foo
Foo.java:4: warning: unmappable character for encoding 949
    System.out.println("가나다라 똠방각하");
                             ^
1 warning
가나다라 ?c방각하

D:\Z>javac -encoding euc-kr Foo.java && java Foo
Foo.java:4: warning: unmappable character for encoding euc-kr
    System.out.println("가나다라 똠방각하");
                             ^
1 warning
가나다라 ?c방각하

D:\Z>javac -encoding MS949 Foo.java && java Foo
가나다라 똠방각하

D:\Z>



결론


자바에서는 반드시 MS949 인코딩을 사용해야 했습니다. 소스 내부에서 인코딩을 사용할 때에도 마찬가지입니다.

물론 한글 윈도우에서 한글 텍스트 파일을 사용할 때에는, 인코딩을 지정할 필요는 없습니다.

리눅스에서 사용한다든지 하는 좀 복잡한 상황에서의 문제입니다.



▶▶ [자바/Java] 유니코드 소스 파일 인코딩 인식시키기 - UTF-8 UTF-16 Unicode




tag: java
자바 | Java

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top