日期:2014-05-18 浏览次数:20768 次
var url = "/test/abc.do?a="+escape("测试"); location.href = url;
------解决方案--------------------
http://www.0451h.com
你可以在tomcat/conf/server.xml中配置以下就可以了,配置如下:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
useBodyEncodingForURI="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
就是加上 useBodyEncodingForURI="true"这句就可以了,祝你成功
------解决方案--------------------
顶:编码问题.
可以用form。也可以尝试下:request.setAttribute
request.getSession.setAttribute
放参数放在request或者session中传过去!
------解决方案--------------------
传递参数乱码问题
1 一般的页面传中文则要url编码
2 jsp中设置<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
接收参数的servelt 应该设置编码
request.setCharacterEncoding("utf-8") ;
3 可以用监听器filter 不过要配置
package filter ;
import javax.servlet.*;
public class CharsetFilter implements Filter{
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8") ;
response.setCharacterEncoding("utf-8") ;
chain.doFilter(request, response) ;
}
public void init(FilterConfig config) throws ServletException {
}
}
在web.xml中配置
<filter>
<filter-name>Charset</filter-name>
<filter-class>filter.CharsetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Charset</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
------解决方案--------------------
1、参数应该encode;
2、编码应该统一,建议统一为utf-8格式(包括tomcat的get方式);
------解决方案--------------------
换中思路也许是好的。
有好多方式可以得到参数。
如:
1.隐藏表单
2.URL重写(不可用,因为你要传的值是中文)
3.会话跟踪(session,cookie等)
在ASP.Net 中有专门解析中文编码的不知道在Java中是否有这样的类,
可以转换编码,并且可以在解析编码。。