用纯Servlet:
在Server端要如此接收中文参数:new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8")
如何解决仅用request.getParameter("name")就可以正确接收
楼上正解,不过因为是纯servlet,估计也没用spring,不过好在spring开源,可以下载源码,把这个filter类单独拿出来用,就ok了。
在web.xml中添加个Filter转码
[code="xml"]
Set Character Encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
Set Character Encoding
/*
[/code]
应二楼要求,贴spring的源码出来。
[code="java"]
package org.springframework.web.filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CharacterEncodingFilter extends OncePerRequestFilter {
private String encoding;
private boolean forceEncoding = false;
public void setEncoding(String encoding) {
this.encoding = encoding;
}
public void setForceEncoding(boolean forceEncoding) {
this.forceEncoding = forceEncoding;
}
@Override
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding) {
response.setCharacterEncoding(this.encoding);
}
}
filterChain.doFilter(request, response);
}
}
[/code]
情况一 action method="get";中文就会乱码;你把method="post"
用servlet自己写一个过滤器。就行了1
写过滤器 可破