본문 바로가기
프로그래밍/java

자바 인코딩 관련

by Super User 2010. 4. 15.

=============================== 인코딩 확인 ===============================

3가지가 있다..

1) String enc = new java.io.OutputStreamWriter(System.out).getEncoding();
    System.out.println("default encoding = " + enc);

 

2) FileReader fr    = new FileReader("C:/test");
   System.out.println("FileReader.getEncoding()====>"+fr.getEncoding());

 

3) System.out.println("file.encoding =" + System.getProperty("file.encoding"));

 

컴파일 시

-Dfile.encoding=EUC-KR -Dclient.encoding.override=EUC-KR 를

사용하여 동일하게 맞추는것이 좋다.

 

 

 

 

 

 

===========================컴파일 시 인코딩 설정 속성==========================

java -Dfile.encoding=EUC-KR -Dclient.encoding.override=EUC-KR 자바파일명

 

 

 

 

 

 

 

================================== getBytes() =================================

예) String str="테스트";

     1. System.out.println(new String(str.getBytes()));

     2. System.out.println(new String(str.getBytes("UTF-8")));

     3. System.out.println(new String(str.getBytes("UTF-8"), "EUC-KR"));

 

     1. getBytes의 인자를 설정하지 않는경우 보통 

         기본적으로 System(os)의 인코딩 방식으로 byte []을 생성한다.

         (어떤 식으로 컴파일 하였는지, 파일형식을 무엇으로 하였는지,

          WAS를 통하여 컴파일 하였는지...에 따라 달라질수 있는것 같다...)

 

     2. getBytes()에 넣어준 인자의 인코딩 방식으로 byte []을 생성한다.

 

     3. getBytes()에 넣어준 인자의 인코딩 방식으로 byte []을 생성한후 원하는 인코딩으로

         다시 변환하여 다시 스트링 문자열로 만든다.

 

 

 

 

============================파일을 열때 강제로 파일형식 변환========================

InputStreamReader inReader = new InputStreamReader(new FileInputStream(file),"EUC-KR");

BufferedReader buff = new BufferedReader(inReader);