Wednesday, October 11, 2006
자바Java] 유니코드(UTF-8) 파일 출력, 유니코드 텍스트 파일 만들기: Unicode Output
자바의 출력 결과를 유니코드 파일로 직접 저장하는 방법입니다. 여기서는 가장 무난한 유니코드 형식인 UTF-8 인코딩(Encoding)으로 저장하는 것을 예로 들었습니다.
위와 같은 2줄의 한글 문자열을, out.txt 라는 이름의 유니코드(UTF-8) 파일로 저장하는 예제 프로그램입니다.
만약 위의 소스 파일 자체도 UTF-8 인코딩으로 저장했다면,
javac -encoding UTF-8 Foo.java && java Foo
이렇게 소스의 인코딩을 지정하여 컴파일합니다. 단, BOM 이 있는 UTF-8 파일은 인식을 하지 못합니다.
OutputStreamWriter 의 인수에서, "UTF8" 를 "UTF-16LE" 등으로 바꾸면 "UTF-16" 인코딩으로 파일이 저장됩니다. 단, 이러면 BOM이 저장되지 않습니다. 봄을 저장하는 법: ▶▶ Java/자바] UTF-16LE, UTF-16BE BOM 쓰기, 유니코드 파일 출력; Write BOM
newLine() 이라는 메소드는, 각종 운영체제에 적합한 개행문자를 자동으로 선택하여 출력하는 것입니다. C언어와 달리, 자바에서는 그냥 \n 이렇게 하면 유닉스 개행문자가 찍히는데, newLine() 은 자동으로 운영체제를 판단하여 \r\n 이렇게 개행문자를 도스 텍스트 형식으로 출력합니다.
UTF-8 BOM 을 삽입하여 출력하는 법: ▶▶ Java/자바] UTF-8 BOM 있는 유니코드 파일 출력/만들기 예제
▶▶ [자바/Java] 유니코드 소스 파일 인코딩 인식시키기 - UTF-8 UTF-16 Unicode
▶▶ 자바/Java] 일본어 Shift-JIS 인코딩 파일 출력, 일본어 Encoding 소스 인식
가나다라
똠방각하
똠방각하
위와 같은 2줄의 한글 문자열을, out.txt 라는 이름의 유니코드(UTF-8) 파일로 저장하는 예제 프로그램입니다.
유니코드(UTF-8) 파일로 결과 저장 예제
import java.io.*;
public class Foo {
public static void main(String args[]) {
try {
BufferedWriter UniOutput = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("out.txt"),
"UTF8"
)
);
UniOutput.write("가나다라");
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"),
"UTF8"
)
);
UniOutput.write("가나다라");
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);
}
}
}
만약 위의 소스 파일 자체도 UTF-8 인코딩으로 저장했다면,
javac -encoding UTF-8 Foo.java && java Foo
이렇게 소스의 인코딩을 지정하여 컴파일합니다. 단, BOM 이 있는 UTF-8 파일은 인식을 하지 못합니다.
OutputStreamWriter 의 인수에서, "UTF8" 를 "UTF-16LE" 등으로 바꾸면 "UTF-16" 인코딩으로 파일이 저장됩니다. 단, 이러면 BOM이 저장되지 않습니다. 봄을 저장하는 법: ▶▶ Java/자바] UTF-16LE, UTF-16BE BOM 쓰기, 유니코드 파일 출력; Write BOM
newLine() 이라는 메소드는, 각종 운영체제에 적합한 개행문자를 자동으로 선택하여 출력하는 것입니다. C언어와 달리, 자바에서는 그냥 \n 이렇게 하면 유닉스 개행문자가 찍히는데, newLine() 은 자동으로 운영체제를 판단하여 \r\n 이렇게 개행문자를 도스 텍스트 형식으로 출력합니다.
UTF-8 BOM 을 삽입하여 출력하는 법: ▶▶ Java/자바] UTF-8 BOM 있는 유니코드 파일 출력/만들기 예제
▶▶ [자바/Java] 유니코드 소스 파일 인코딩 인식시키기 - UTF-8 UTF-16 Unicode
▶▶ 자바/Java] 일본어 Shift-JIS 인코딩 파일 출력, 일본어 Encoding 소스 인식
tag: java
자바 | Java
<< Home