Servlet从jsp页面读取数据乱码
在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;
请大虾指教一下
------解决方案--------------------加上
<meta http-equiv="content-type" content="text/html; charset=utf-8">
试试看
以及加上一个EncodingFilter试试看
public class CharacterEncodingFilter implements Filter {
------解决方案--------------------可以先设置一下
request.setCharacterEncoding("gb2312");
或者utf-8
然后再获取.
------解决方案--------------------楼主的问题我也遇到过 。有很多答案 。
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调试下
------解决方案--------------------再看看你是不是用Get方法提交的,若是的,改成post试试……
------解决方案--------------------
------解决方案--------------------有时候是浏览器的问题。解决的问题有很多。
例如:
1.#4所说的那样。
2.加一个过滤器。
Java code
/**
*
*/
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
}
}