论坛首页 Java企业应用论坛

JBoss+Jetty 中文问题的解决方法

浏览 8534 次
该帖已经被评为精华帖
作者 正文
   发表时间:2003-10-12  
在 JBoss+Jetty 中开发 JSP 时,当把页面编码设置为 gb2312 时,即:
<%@ page contentType="text/html;charset=gb2312" %>
取参数前需要先设置一下 request 对象的编码,
request.setCharacterEncoding("gb2312");
否则取出来的中文会是乱码,必须要手工转换,即:
new String(request.getParameter("click").getBytes("iso8859-1"),"gb2312");
这样做就麻烦了。
需要注意的是设置 request 对象的编码必须要在取所有的参数之前,否则就无效了。

Tomcat 支持 GBK 没有问题,不过 Jetty 缺省只能支持 GB2312。使用:
<%@ page contentType="text/html;CHARSET=utf8" %>
是没有效果的。
有这个问题是因为在 Jetty 中将 GB2312 作为中国的缺省字符集。解决的方法是修改 Jetty 的代码,将 GB2312 改为 GBK(只有一个 Java 文件)。重新编译就可以支持 GBK 了。
   发表时间:2003-10-14  
这个问题你可以反馈给jetty开发者?
0 请登录后投票
   发表时间:2003-11-29  
jetty4.21 版gbk的问题好象已经解决了,不过request仍然要编码
我的测试JSP
index.jsp
=======================================
<%@ page contentType="text/html;CHARSET=utf8" %>
<html>
<body>
<%="你好,朱 镕 基"%>
<form action ="two.jsp" method="post">
<input type="text" name="input2" value="朱 镕 基">input<br>
<input type="submit">
</form>
</body>
</html>



two.jsp
========================================
<%@ page contentType="text/html;CHARSET=utf8" %>
<%request.setCharacterEncoding("GBK");; %>
表单参数是:<%=request.getParameter("input2");%>
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics