由于数据库编码为UTF-8,所以为了能显示所以页面也只能用UTF-8的编码,如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("GB2312"))。
然后我把它放到表单的隐藏域中  <input type="hidden" name="sjzt" value=<%=sjzt%>>,再传递给servlet时,在servlet就显示成乱码了。
求高人指点啊。
该如何解决?谢谢!!!!!

解决方案 »

  1.   

    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
      

  2.   

    pageEncoding="utf-8" 改成pageEncoding="gbk" 就没问题了
      

  3.   

    request.setCharacterEncoding("utf-8"))应该可以 
      

  4.   

    <%request.setCharacterEncoding("GBK");%>
      

  5.   

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
    我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("utf-8"))。
      

  6.   

    request.setCharacterEncoding("utf-8"))
    response.setCharacterEncoding("utf-8"))
    都写上 要不就全改成 gbk  页面的也得改  统一
      

  7.   

    楼主 在 接受参数的Servlet中 改成 request.setCharacterEncoding("utf-8"); 就可以了
    字符集要是用 就全部统一. 或者你改变 这个jsp页面的也可以 换成gb2312
      

  8.   

    表单提交要使用post方式,不能使用get,否则乱码。
    如果一定要是用就必须现转码。最好设置个过滤器,现在都是使用过滤器来处理的
      

  9.   

    value= <%=sjzt%>,改成value= "<%=sjzt%>",中文乱码终极解决方法:
    1、所有页面都用UTF-8。 
    2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 
    3、javascript脚本里用encodeURI(str),在jsp里接收的时候不用decode。 
    4、在jsp里用java.net.URLEncoder.encode(str, "UTF-8")编码传参数,接收页面用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")。 
    5、最容易忽略的是使用"":value=" <%=paraFiles%>",一定要有引号。 例子源码:http://download.csdn.net/source/965319
      

  10.   

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    post提交就弄个过滤器啊
    网上copy个放项目里web.xml下一配置就不用管了多方便
      

  11.   

    接受参数的Servlet中 request.setCharacterEncoding("GB2312")
    改成 request.setCharacterEncoding("utf-8");
    如果还是不行,则在接受参数的Servlet中,对该参数进行一下转换如:
    String param =   request.getParameter("content");   
    param = String(param.getBytes("iso-8859-1"),"UTF-8");  
    这样再继续使用经过处理后的param,就应该可以了。 
      

  12.   

    JSP页面中的编码:pageEncoding="utf-8" 改成 pageEncoding="GBK"
    然后在Servlet端设置编码:request.setCharacterEncoding("GBK");
      

  13.   

    设置过滤器吧!
    web.xml里加入
    <filter>
    <filter-name>CharacterEncoding</filter-name>
    <filter-class>
    filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>gb2312</param-value>
    </init-param>
    <init-param>
    <param-name>ignore</param-name>
    <param-value>false</param-value>
    </init-param>
    </filter> <filter-mapping>
    <filter-name>CharacterEncoding</filter-name>
    <servlet-name>action</servlet-name>
    </filter-mapping>package filter;import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;/**
     * @author jacky.zhu
     *
     * @createDate 2008-11-3
     *
     */
    public class CharacterEncodingFilter implements Filter {
    protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() {
    this.encoding = null;
    this.filterConfig = null;
    } /*
     * (non-Javadoc)
     * 
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
    this.encoding = filterConfig.getInitParameter("encoding");
    String value = filterConfig.getInitParameter("ignore");
    if (value == null) {
    this.ignore = true;
    } else if (value.equalsIgnoreCase("true")) {
    this.ignore = true;
    } else {
    this.ignore = false;
    }
    } /*
     * (non-Javadoc)
     * 
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
     *      javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    if (!ignore) {
    if (this.encoding != null) {
    request.setCharacterEncoding(this.encoding);
    }
    }
    chain.doFilter(request, response);
    } protected String selectEncoding(ServletRequest request) {
    return (this.encoding);
    }
    }
      

  14.   

    没有那么麻烦,楼主在MyEclipse里面的JSP页面上单击右键-->properties-->找到把页面字符修改为gb18030的选项即可。
      

  15.   

    由于数据库编码为UTF-8,所以为了能显示所以页面也只能用UTF-8的编码,如下: 
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
    我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("UTF-8"))。试试............
      

  16.   

    把页面改成GBK就可以了 谢谢!