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

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

 
Tuesday, October 24, 2006

자바,Java] 유니코드(UTF-8)변환, KS완성형 파일을 유니코드로 바꾸기


"한글 확장 완성형 파일" 즉 euc-kr 또는 cp949 또는 ks_c_5601-1987 인코딩의 파일을, 유니코드로 변환하는 자바 프로그램입니다. 유니코드는 여러 종류가 있는데 여기서는 UTF-8 로 변환합니다. UTF-8 이 인터넷에서 사용되는 형식입니다. HTML 파일을 유니코드 인코딩으로 작성할 때에는 UTF-8 이어야 합니다. 다른 종류의 유니코드는 문제가 생깁니다.


JAVA 소스: 확장 완성형을 유니코드(UTF-8)로 변환


파일명: Foo.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
import java.io.*;

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

    if (args.length == 0) {                   // args.length 는 옵션 개수
      System.err.println("Input Filename...");
      System.exit(1);                         // 읽을 파일명을 주지 않았을 때는 종료
    }

    String outFilename = args[0] + ".uni";    // 출력 파일명 만들기, uni 라는 확장자를 붙여서


    try {
      ////////////////////////////////////////////////////////////////
      BufferedReader in = new BufferedReader(new FileReader(args[0]));

      BufferedWriter out = new BufferedWriter(
                                              new OutputStreamWriter(
                                                                     new FileOutputStream(outFilename),
                                                                     "UTF-8"
                                                                     )
                                              );

      String s;

      while ((s = in.readLine()) != null) {
        out.write(s); out.newLine();
      }

      in.close(); out.close();
      ////////////////////////////////////////////////////////////////
    } catch (IOException e) {
        System.err.println(e); // 에러가 있다면 메시지 출력
        System.exit(1);
    }

  }
}



예를 들어 "0.txt" 라는 한글 완성형 파일을 변환하기 위해서는

javac Foo.java
이렇게 컴파일한 후

java Foo 0.txt
이렇게 옵션을 주어 실행시키면

하드의 현재 디렉토리에 "0.txt.uni" 라는 유니코드(UTF-8) 파일이 생깁니다. 똑같은 내용이며 단지 인코딩이 다릅니다.


그런데 다만 BOM 이 없습니다. 물론 인터넷에 올릴 HTML 파일을 UTF-8로 인코딩할 때에는 BOM 이 없는 것이 정상입니다: ▶▶ [QnA] 유니코드 (Unicode) 의 BOM (Byte Order Mark) 이란?

▶▶ Java/자바] UTF-8 BOM 있는 유니코드 파일 출력/만들기 예제




입력 파일의 인코딩은 기본값으로 했기에, 한글 윈도우가 아닌 일본어판 윈도우에서 실행하면, 일본어 Shift-JIS 파일이 UTF-8로 변환될 것입니다.


운영체제의 언어에 상관없이 항상 한국어 파일을 대상으로 하는 코드: ▶▶ Java/자바] 한글 euc-kr (MS949) 파일을, 유니코드(UTF-8)로 변환 프로그램




텍스트 편집기를 사용하여 파일을 유니코드로 변환하는 방법: ▶▶ 한글 텍스트 문서를, 유니코드(Unicode / UTF-8) 로 변환하기


유니코드 | Unicode




tag: java
자바 | Java

1 Comments:
At June 29, 2021 at 5:53 PM, Blogger Unknown said...

args 찾아보다가 방문했는데 덕분에 이해가 됐습니다. 감사합니다.

 

<< Home RSS 2.0 feed

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