页面一:
<FORM name="form1" METHOD="POST" ACTION="FiReadFileResult.jsp?name=newName" ENCTYPE="multipart/form-data">
<% newName = "姓名";%>页面二:
<%
String name = request.getParameter("name");
System.out.println(name);
%>后台打印的name的值显示乱码。request.setCharacterEncoding("GB2312");
request.setCharacterEncoding("GBK");
name = new String(name .getBytes(“ISO-8859-1”),”GBK”);这几种方法我全试过了,可还是不行!
要怎么处理才能正常显示中文?请高手们指教!
<FORM name="form1" METHOD="POST" ACTION="FiReadFileResult.jsp?name=newName" ENCTYPE="multipart/form-data">
<% newName = "姓名";%>页面二:
<%
String name = request.getParameter("name");
System.out.println(name);
%>后台打印的name的值显示乱码。request.setCharacterEncoding("GB2312");
request.setCharacterEncoding("GBK");
name = new String(name .getBytes(“ISO-8859-1”),”GBK”);这几种方法我全试过了,可还是不行!
要怎么处理才能正常显示中文?请高手们指教!
<% newName = "姓名";%>
<FORM name="form1" METHOD="POST" ACTION="FiReadFileResult.jsp?name=<%=newName%>" ENCTYPE="multipart/form-data">
<% newName = "姓名";%>
可以看看这里:http://blog.csdn.net/yun15291li/archive/2005/05/04/372142.aspx
把上面这句去掉试一试看
new String(request.getParameter("test").getBytes("iso-8859-1"),"GBK")
但这样的代码相信不是一个解决的办法,这样会增加程序的复杂度,写数据库,提交表单,URL中传中文参数,到处都是中文问题!作为一个连走路都要算计最短距离的懒人,当然不愿天天叨念着new String(request.getParameter("test").getBytes("iso-8859-1"),"GBK"),然汉战战兢兢的处理各种字符转换的问题,我跋山涉水,翻山越岭,终于找到了完美的解决方式,在TOMCAT中只需要简单的配置,引入2个文件就可以轻松搞定。
前提条件,每个页面使用
<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
步骤1:添加过滤器
在TOMCAT中找到这2个文件RequestDumperFilter.java,SetCharacterEncodingFilter.java,他们位于D:\Tomcat5.0.27\webapps\jsp-examples\WEB-INF\classes\filters,加到你的工程文件里去,编译他们。
步骤2:配置WEB.XML
在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:修改server.xml
在server.xml修改2个地方
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK'/>
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector" port="8009" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0" useURIValidationHack="false" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
URIEncoding='GBK'/>