→ PsMonkey:我的第八百篇文章耶... XDXD 05/21 12:02
> -------------------------------------------------------------------------- <
作者: pply (彭彭彭^^) 看板: java
標題: Re: [JSP ] servlet中用到中文字
時間: Sun May 21 20:15:12 2006
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: ※ 引述《pply (彭彭彭^^)》之銘言:
: ^^^^^^^^^^^^^
: 別再用這種害人的東西了 T__T
: : java.net.URLEncoder
: : http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLEncoder.html
: 光靠這味,可能不夠...
: 下面是我寫的測試
: 環境是 Tomcat 5.5.4
: 似乎 Tomcat 在處理 request.getParameter() 的時候
: 就會幫你作 URLDecoder
: 這倒是沒什麼... 問題是... 他好像用的 Encoder 是 ISO-8859-1
^^^^^^^^^^^^^^^^^^^^^
感謝版主提醒
很久以前解決的問題都忘記詳細的內容了
如上所述 , 是用 ISO-8859-1
這個設定可以在 Tomcat-Home/conf/server.xml 裡頭改
在 <Connector> 中有個 URIEncoding 改成想要的編碼
接下來就可以直接用 getParameter() 取用 ~~~
加個說明
我應該也是在 javaworld 裡找到解答的~~~
: (以前好像看過這方面的討論 @ JavaWorld.tw,精靈大大 post 的)
: 所以,我也搞了一下下,才發現下面這個... 解法?
: 不知道能不能用設定 Tomcat 的方式來解決這個問題...
: <?xml version="1.0" encoding="UTF-8" ?>
: <%@ page language="java" contentType="text/html; charset=UTF-8"
: pageEncoding="UTF-8"%>
: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
: <html xmlns="http://www.w3.org/1999/xhtml">
: <head>
: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
: <title>Simulate Step 1</title>
: </head>
: <body>
: <%
: String param = request.getParameter("str");
: if(param==null){
: response.sendRedirect("test.jsp?str="+java.net.URLEncoder.encode("中文字", "UTF-8"));
: }else{
: out.println( param+"<BR>");
: param = new String(param.getBytes("ISO-8859-1"), "UTF-8");
: out.println(param);
: }
: %>
: </html>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.243.76
※ 編輯: pply 來自: 140.112.243.76 (05/21 20:16)
※ 引述《pply (彭彭彭^^)》之銘言:
: ※ 引述《renice (山水有相逢)》之銘言:
: : 在servlet中的doPost()執行resp.sendRedirect("../jsp/err.jsp?str=中文字")
: : err.jsp中
: : <%@page contentType="text/html;charset=big5"%>
^^^^^^^^^^^^^
別再用這種害人的東西了 T__T
: : <%
: : if (request.getParameter("str")!=null)
: : {
: : out.println(request.getParameter("str"));
: : }
: : %>
: : 印出來是亂碼,我該如何解決呢?謝謝大家的指導!
: java.net.URLEncoder
: http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLEncoder.html
光靠這味,可能不夠...
下面是我寫的測試
環境是 Tomcat 5.5.4
似乎 Tomcat 在處理 request.getParameter() 的時候
就會幫你作 URLDecoder
這倒是沒什麼... 問題是... 他好像用的 Encoder 是 ISO-8859-1
(以前好像看過這方面的討論 @ JavaWorld.tw,精靈大大 post 的)
所以,我也搞了一下下,才發現下面這個... 解法?
不知道能不能用設定 Tomcat 的方式來解決這個問題...
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Simulate Step 1</title>
</head>
<body>
<%
String param = request.getParameter("str");
if(param==null){
response.sendRedirect("test.jsp?str="+java.net.URLEncoder.encode("中文字", "UTF-8"));
}else{
out.println( param+"<BR>");
param = new String(param.getBytes("ISO-8859-1"), "UTF-8");
out.println(param);
}
%>
</html>
--
侃侃長論鮮窒礙 網站:http://www.psmonkey.idv.tw
眾目睽睽無心顫 個人版:telnet://legend.twbbs.org
煢居少聊常人事
殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.204.16.17