4,518,000 th visitor since 2017.2.1 ( Today : 8567 )
Programming
No. 510
Name. swindler
Subject. 웹스피어 한글 문제 관련
Main Cate. JSP/Servlet
Sub Cate.
Date. 2008-12-13 12:53
Hit. 5867 (211.43.206.101)
File. env._jsp    hangul._jsp  
1. 아래에 첨부된 env.jsp 및 hangul.jsp 를 1)웹스피어 및 3) WTE 환경에 적당한
JSP가 실행가능한 곳에 넣고, 실행된 결과를 첨부해 줘 보세요.
file.encoding, client.encoding.everride, 등등의 값이 다를 것입니다.

2. ALTIO 개발환경이라함은, Java로 된 Socket 혹은 URLConnection을 사용하는 자바
프로그램이라 이해하면 되나요?
ALTIO JVM의 file.encoding은 무엇을 사용하시나요?

(1) -Dfile.encoding=UTF8 을 사용하고 있다면,
첫번째 방법,
8859_1
ALTIO: UTF8 -> (URLencoding)-----------------> (URLdecoding)-> JVM:KSC5601

ALTIO 환경내의 기본 string형은 UTF8을 사용하고 있습니다. 데이타를 URLConnecation을
이용하여 웹스피어 HTTP GET/POST 로 보낼 때는
String str = "이원영"; //UTF8로 인코딩 되어 있음.
String ksc_str = new String(str.getBytes("UTF8"), "KSC5601"); //KSC5601
String url_encoding = URLEncoder.encode(ksc_str); // Hello%20%AF%2A ...
socket.write( url_encoding.getBytes("8859_1") );

2) 웹스피어서는 그냥
String s = request.getParameter..... ; // KSC5601

3) 웹스피어의 output은 그냥 특별한 인코딩 변환없이,
response.setContentType("text/...;charset=KSC5601:);
JSP라면 <%@ page contentType="text/...;charset=KSC5601");

4) 결과를 ALTIO에서 수신할 때는,
in = ..inputstrem;
isr = InputStreamReader(in, "KSC5601");
String str = .....read/readLine/....; //KSC5601
// System.out.println(str); // 한글이 콘솔로 보임)
String utf8_str = new String( str.getBytes("KSC5601"), "UTF"); // UTF8
// utf8_str -> 임의의 파일에 기록: UltraEditor로 UTF8로 읽어들이면 보임

(2) -Dfile.encoding=KSC5601 을 사용하고 있다면...

....

NOTE: client.encoding.override를 KSC5601을 사용하고 있기 때문에, 웹스피어는
8859_1의 URL encoding된 부분을 URL decoding하고, 이를, string을 만드는 과정에서
KSC5601의 문자셋으로 무조건 간주합니다.
client.encodign.override 옵션이 없으면, HTTP Header 의 Language 값을 참조하게
됩니다.



[바로가기 링크] : http://coolx.net/cboard/develop/510



Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog