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

 
Monday, November 20, 2006

Java/자바] UTF-16LE, UTF-16BE BOM 쓰기, 유니코드 파일 출력; Write BOM


16비트 유니코드 파일은 2종류가 있는데, 윈도우에서 사용되는 리틀 엔디언(Little-Endian)과, 자바 가상머신 등에서 사용되는 '빅 엔디언(Big-Endian) 입니다. (▶▶ '리틀 엔디언 little-endian 유니코드'와 '빅 엔디언 big-endian 유니코드'의 차이점 참고)


자바에서 리틀엔디언 유니코드 파일을 만들 때, "UTF-16LE" 라는 인코딩으로 유니코드 파일을 출력하면 BOM 이 저장되지 않습니다. UTF-8과 달리, 16비트 유니코드에 BOM이 없으면 에디터에서 거의 인식을 못하기에 곤란하더군요. (▶▶ [QnA] 유니코드 (Unicode) 의 BOM (Byte Order Mark) 이란? 참고)


BOM이 있는 16비트 유니코드 파일을 만드는 방법입니다.


UTF-16 (리틀 엔디언, 빅 엔디언) 유니코드 저장 예제


다음 예제는 윈도우에서 사용되는 리틀 엔디언으로 유니코드를 저장하는 것인데, 만약 빅 엔디언으로 저장하려면

"UnicodeLittle" 이라는 부분을

"UnicodeBig" 으로 고치면 됩니다.


"UTF-16LE" 또는 "UTF-16BE" 이렇게 인코딩을 지정하면 BOM이 없는 16비트 유니코드 파일이 생성됩니다.



파일명: Foo.java
import java.io.*;

public class Foo {
  public static void main(String[] args) {

  try {
    BufferedWriter UniOutput = new BufferedWriter(
                                                  new OutputStreamWriter(
                                                                         new FileOutputStream("out.txt"),
                                                                         "UnicodeLittle"
                                                                         )
                                                  );


    UniOutput.write("ABC가나다라");
    UniOutput.newLine();
    UniOutput.write("똠방각하");

    UniOutput.close();

  } catch (UnsupportedEncodingException e) {
      System.err.println(e);
      System.exit(1);
  } catch (IOException e) {
      System.err.println(e);
      System.exit(1);
  }

  }
}


위의 소스에 대한 설명은 여기에: ▶▶ Java/자바] UTF-8 BOM 있는 유니코드 파일 출력/만들기 예제


☞ 자바(Java)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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