在Servlet里面从jsp表单里读取数据,结果读出来的中文全是乱码。在jsp里面的编码设置时<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>在Servlet里面也对编码设置了    request  response  都有设置成utf-8中间的传参是         function autoComplete() {
var xhr = new XMLHttpRequest();
var url='auto?item='+document.getElementById('content').value;
请大虾指教一下

解决方案 »

  1.   

    加上
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    试试看以及加上一个EncodingFilter试试看
    public class CharacterEncodingFilter implements Filter {
      

  2.   

    楼主你是Ajax传的中文吧?
    js这样写,比如传中文张三var a=encodeURI(encodeURI('张三'));
    xmlhttp.open("get", "/Text/test.do?x=test&aa=" + a, true);servlet这样接受String name = URLDecoder.decode(request.getParameter("aa"),"utf-8");这样就OK了
      

  3.   

    可以先设置一下
    request.setCharacterEncoding("gb2312");
    或者utf-8
    然后再获取.
      

  4.   

    楼主的问题我也遇到过 。有很多答案 。
    1 :tomcat 下的server.xml 
     <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000"  URIEncoding="UTF-8"
                   redirectPort="8443" />
    2:其次就是页面了 :
    <%@ page contentType="text/html; charset=utf-8" language="java" import="java.util.*" errorPage="" %>3:你可以自己传值时debud调试下 
      

  5.   

    再看看你是不是用Get方法提交的,若是的,改成post试试……
      

  6.   

    String s = new String(s.getByte("iso-8859-1"),"utf-8")或.\request.setCharectorEncoding("yutf-8")
    respin
    response.setCharectorEncodeing("utf-8")
      

  7.   

    或者把form表单的提交方式改为post试试
      

  8.   

    有时候是浏览器的问题。解决的问题有很多。
    例如:
    1.#4所说的那样。
    2.加一个过滤器。/**
     * 
     */
    package com.wycong.epet.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;
    public class CharsetFilter implements Filter {//建一个类实现接口Filter  public void destroy() {
    // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain filter) throws IOException, ServletException {
    request.setCharacterEncoding("gbk");
    response.setCharacterEncoding("gbk");
    response.setContentType("text/html;charset=gbk");
    filter.doFilter(request, response);
    } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}<filter>//在项目的WebRoot->WEB-INF->web.xml里加上这个
        <filter-name>CharsetFilter</filter-name>
        <filter-class>com.wycong.epet.filter.CharsetFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>CharsetFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>这样就行了。
      

  9.   

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
      

  10.   

    谢谢大家了这个问题后来我弄了一个编码过滤器就解决了!!!估计还是页面提交的时候(编码)出了些问题   不用过滤器的话,先前也提到过只是单纯把jsp Servlet 里面的 request.setCharacterEncoding("text/html;charset=utf-8")
    response.setContentType("utf-8") 设成utf-8还是不能解决具体的问题点的解决还要大家一起研究研究哈。可加我QQ 465230072