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试试……
[解决办法]
/** * */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 }}