sitelink1  
sitelink2  
sitelink3 http://1 
sitelink4 http://ko 
sitelink5 http://mcpaint.tistory.com/88 
sitelink6 http://sitelink1 

참조 URL : http://betterthanyesterday.textcube.com/7


1. java, jsp 소스 파일내의 다국어 표시

 

java, jsp 소스 파일의 인코딩과 JVM 실행시 -Dfile.encoding이 일치하지일치하지 않으면 소스 파일내의 한글이 제대로 표시되지 않는다.

 

따라서 -Dfile.encoding값을 모든 경우에 무조건 EUC-KR로만 지정해서는 안된다.

 

publicpublic class Tester {

 

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

String fileEncoding=System.getProperty("file.encoding");

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

String s="가나다";

System.out.println("s = "+s);"+s);

}

}

 

위 java 소스를 여러가지 case에서 실행한 결과는결과는 다음과 같다.

 

Case 1.

java 소스 파일 인코딩인코딩 : MS949

-Dfile.encoding : MS949(Windows default) or EUC-KR

 

==> 실행실행 결과

file.encoding = EUC-KR

s = 가나다

 

Case 2.

java 소스 파일 인코딩 : MS949

-Dfile.encoding : UTF-8

(ex. Windows에서 개발한 소스를, Linux에서 -Dfile.encoding을 명시하지 않고 실행)

 

==>==> 실행 결과

file.encoding = UTF-8

s = ??섎떎

 

Case 3.

java 소스 파일 인코딩 : UTF-8

-Dfile.encoding : UTF-8UTF-8

 

==> 실행 결과

file.encoding = UTF-8

s = 가나다가나다

 

Case 4.

java 소스 파일 인코딩 : UTF-8UTF-8

-Dfile.encoding : EUC-KR

 

==> 실행 결과

file.encoding = EUC-KREUC-KR

s =

(아예 콘솔에서 보이지 않는다.)

 

-------------------------------------------------------------------------------

 

2. 문자열 IO처리시 다국어 표시

 

파일이나파일이나 소켓 등으로 문자열 IO처리시, 문자열의 default charset은 -Dfile.encoding의 값을 따른다

 

new String(byte[] b) 또는 String getBytes() 실행시에도 default charset은charset은 -Dfile.encoding의 값을 따른다

 

public class EncodingTester1 {

 

public static void main(String[] args)throws Exception {

String String fileEncoding=System.getProperty("file.encoding");

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

 

InputStream is=new FileInputStream("c:/temp/kor.txt");

 

//Default charset은 file.encoding값을 따르게 된다

//만약 kor.txt 파일의 인코딩이 file.encoding과 다른 경우에는 한글이 깨져깨져 보인다

BufferedReader default_reader=new BufferedReader(new InputStreamReader(is));

 

//아래와 같이같이 InputStreamReader가 아닌 Reader를 사용하는 경우에는 항상 file.encoding값을 따른다

//BufferedReader default_reader=new BufferedReader(new FileReader("c:/temp/kor.txt"));

 

String kor=default_reader.readLine();

System.out.println("Default >> "+kor);"+kor);

 

is=new FileInputStream("c:/temp/kor.txt");

BufferedReader euc_reader=new BufferedReader(new InputStreamReader(is, "EUC-KR"));

kor=euc_reader.readLine();

System.out.println("EUC-KR >> "+kor);

 

is=new FileInputStream("c:/temp/kor.txt");

 

//kor.txt 파일의 인코딩이 file.encoding과 다른 경우에는 아래와 같이같이 charset을 명시해 주어야 한다

BufferedReader utf8_reader=newutf8_reader=new BufferedReader(new InputStreamReader(is, "UTF-8"));

kor=utf8_reader.readLine();

System.out.println("UTF-8 >> "+kor);

 

is=new is=new FileInputStream("c:/temp/kor.txt");

BufferedReader eng_reader=new BufferedReader(new InputStreamReader(is, "ISO-8859-1"));

kor=eng_reader.readLine();

System.out.println("ISO-8859-1 >> "+kor);

 

}

 

}

 

Case 1.

kor.txtkor.txt 파일 인코딩 : MS949

-Dfile.encoding : MS949

 

==> 실행 결과결과

file.encoding = MS949

Default >> 가나다라

EUC-KR >> 가나다라

UTF-8 >>>> ???????

ISO-8859-1 >> °¡³ª´?¶?

 

Case 2.

kor.txt 파일파일 인코딩 : UTF-8

-Dfile.encoding : MS949 or EUC-KR

 

==> 실행실행 결과

file.encoding = MS949

Default >> ???ㅻ

EUC-KR >> ???ㅻ?

UTF-8UTF-8 >> 가나다라

ISO-8859-1 >> ?°??굹?떌?씒?

번호 제목 글쓴이 날짜 조회 수
243 [HttpURLConnection] POST로 파라미터 넘기기 황제낙엽 2017.08.01 872
242 HttpURLConnection POST 방식 사용하기 황제낙엽 2017.08.01 798
241 Runtime 클래스를 이용한 윈도우 프로그램 실행 예제 황제낙엽 2017.08.01 413
240 JSON Util (JSON 을 다루기 위해 직접 작성한 유틸 클래스) file 황제낙엽 2017.07.10 819
239 자바 리플렉션(Java Reflection) 간단한 설명 및 사용방법 정리 file 황제낙엽 2017.07.10 498
238 Generate random numbers (Random.java) 황제낙엽 2017.07.02 839
237 쓰레드(Thread)를 중간에 종료시키는 방법 황제낙엽 2017.03.15 5516
236 JSON 라이브러리(API) 종류 황제낙엽 2017.01.18 713
235 [JSON기초04] 자바 JSON 데이터에서 KEY 값 알아오기 (TIP) 황제낙엽 2017.01.18 7217
234 [JSON기초03] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 파싱 황제낙엽 2017.01.18 908
233 [JSON기초02] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 생성 황제낙엽 2017.01.18 462
232 [JSON기초01] JSON이란? XML이란? JSON 개념, XML 개념 설명 황제낙엽 2017.01.18 689
231 싱글톤 방식의 테스트용 Temporary Data Access Object 황제낙엽 2017.01.12 1920
230 SimpleDateFormat Symbol file 황제낙엽 2016.12.20 461
229 JSON-lib Java Library file 황제낙엽 2013.04.09 459
228 JSP 파일에서 getOutputStream() has already been called for this response 에러 황제낙엽 2013.04.24 11907
227 servlet 에서의 json 한글처리 황제낙엽 2013.04.23 1854
» -file.encoding의 역할 (다국어, 한국어) 황제낙엽 2013.04.10 549
225 [The type HttpUtils is deprecated] javax.servlet.http.HttpUtils 황제낙엽 2013.03.20 569
224 com.oreilly.servlet.multipart 를 이용한 파일 업로드 file 황제낙엽 2013.03.19 443