作者PsMonkey (痞子军团团长)
看板java
标题Re: [JSP ] servlet中用到中文字
时间Sun May 21 12:02:13 2006
※ 引述《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
1F:→ PsMonkey:我的第八百篇文章耶... XDXD 05/21 12:02