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비트 유니코드 파일을 만드는 방법입니다.
다음 예제는 윈도우에서 사용되는 리틀 엔디언으로 유니코드를 저장하는 것인데, 만약 빅 엔디언으로 저장하려면
"UnicodeLittle" 이라는 부분을
"UnicodeBig" 으로 고치면 됩니다.
즉, UnicodeLittle 이라는 인코딩을 사용하면 BOM 이 만들어집니다.
"UTF-16LE" 또는 "UTF-16BE" 이렇게 인코딩을 지정하면 BOM 이 없는 16비트 유니코드 파일이 생성됩니다.
파일명: Foo.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
위의 소스에 대한 설명은 여기에: ▶▶ Java/자바] UTF-8 BOM 있는 유니코드 파일 출력/만들기 예제
자바에서 리틀엔디언 유니코드 파일을 만들 때, "UTF-16LE" 라는 인코딩으로 유니코드 파일을 출력하면 BOM 이 저장되지 않습니다. UTF-8과 달리, 16비트 유니코드에 BOM이 없으면 에디터에서 거의 인식을 못하기에 곤란하더군요. (▶▶ [QnA] 유니코드 (Unicode) 의 BOM (Byte Order Mark) 이란? 참고)
BOM이 있는 16비트 유니코드 파일을 만드는 방법입니다.
UTF-16 (리틀 엔디언, 빅 엔디언) 유니코드 저장 예제
다음 예제는 윈도우에서 사용되는 리틀 엔디언으로 유니코드를 저장하는 것인데, 만약 빅 엔디언으로 저장하려면
"UnicodeLittle" 이라는 부분을
"UnicodeBig" 으로 고치면 됩니다.
즉, UnicodeLittle 이라는 인코딩을 사용하면 BOM 이 만들어집니다.
"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);
}
}
}
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 있는 유니코드 파일 출력/만들기 예제
tag: java
자바 | Java
<< Home