Re: [JSP ] servlet中用到中文字
※ 引述《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" "" rel="nofollow">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="" rel="nofollow">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
→
05/21 12:02, , 1F
05/21 12:02, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 4 篇):