~~~~~~~~~再提tomcat乱码处理问题~~~~~~~~~~~

andraw2002 2005-10-07 02:14:29
页面A.jsp(需要上传文件)
=======================================================================
<%@ page contentType="text/html; charset=GBK" language="java" %>
………………
<form action="B.jsp?id=12&fun=3" method="post" enctype="multipart/form-data" name="fcEdit" onSubmit="javascript: return ChkForm();">
……
<input name="xqmc" type="text" class="line" id="xqmc" size="40">
<input name="file1" type="file" class="tablecolor" id="file1" size="40">
……
</form>



页面B.jsp
=======================================================================
<%@ page contentType="text/html; charset=GBK" language="java" %>
<%@ page import="java.io.File"%>
<%@ page import="com.jspsmart.upload.*"%>
……
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.upload();
……
xqmc = PubFunc.Trim((su.getRequest().getParameterValues("xqmc"))[0]);
……
out.println(xqmc);

=======================================================================
=======================================================================
B.jsp获取的A.jsp页面的表单内容为乱码。要怎么处理呢???

郁闷啊,请各位大虾帮忙啊!!
环境:linux redhat, tomcat4, sql server
...全文
326 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
treeClimber 2005-10-08
  • 打赏
  • 举报
回复
如果直接是本页面的中文文字,用
<%@ page contentType="text/html; charset=gb2312" %>
如果从其他页面的传来的,用下面两个
<%
request.setCharacterEncoding("gb2312");//对所有的参数

String xqmc=new String(su.getRequest().getParameter("xqmc").trim().getBytes("ISO8859_1"), "gb2312"); //针对单个的参数
%>
chense 2005-10-07
  • 打赏
  • 举报
回复
解决办法:

1 实现一个Filter.设置处理字符集为GBK。(在tomcat的webapps/servlet-examples目录有一个完整的例子。请参考web.xml和SetCharacterEncodingFilter的配置。)

1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。
2)在你的web.xml里加入如下几行:

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3)完成.

2 get方式的解决办法
1) 打开tomcat的server.xml文件,找到以下区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:

<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>


2)重启tomcat,一切OK。
andraw2002 2005-10-07
  • 打赏
  • 举报
回复
help...............




andraw2002 2005-10-07
  • 打赏
  • 举报
回复
试过前面两位的方法了,还是不行啊.

OnlyFor_love 2005-10-07
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=gb2312" %>
<%
request.setCharacterEncoding("gb2312");
String xqmc=new String(su.getRequest().getParameter("xqmc").trim().getBytes("ISO8859_1"), "gb2312");
%>
xwt799023 2005-10-07
  • 打赏
  • 举报
回复
加<%@ page contentType="text/html; charset=gb2312" %>
request.setCharacterEncoding("gb2312");
试一下
柯本 2005-10-07
  • 打赏
  • 举报
回复
试试:
在A,B中加:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
然后:
xqmc = new String(xqmc.getBytes("UTF-8"), "GB2312");

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧