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 |
|
|
|
[Modify] [Delete] | [Reply] [List] |