<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="disp.jsp"> <!-- 相当于使用get -->
<input type="text" name="info">
<input type="submit" value="submit">
</form>
</body>
</html>

display.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://www.mldn.cn/jst/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=request.getParameter("info") %>
</body>
</html>

我使用了filter,代码如下:

 package org.lxh.filterdemo;

 import java.io.IOException;
import java.nio.charset.Charset; import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean enable = false;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (this.enable) {
String encoding = this.selectEncoding(request);
if (encoding != null && !encoding.equals("")) {
System.out.println("~~" + this + ": request :" + encoding);
request.setCharacterEncoding(encoding); //Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().
// response.setCharacterEncoding(encoding); // 暂时不太清楚
}
}
// Pass control on to the next filter
chain.doFilter(request, response);
if (this.enable) {
String encoding = this.selectEncoding(request);
if (encoding != null && !encoding.equals("")) {
System.out.println("~~" + this + ": response :" + encoding);
response.setCharacterEncoding(encoding);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
if (!Charset.isSupported(encoding)) {
encoding = null;
}
String enableString = filterConfig.getInitParameter("enable");
if (enableString.equalsIgnoreCase("true")) {
this.enable = true;
} else {
this.enable = false;
}
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}

filter开启,但是仍然有乱码问题,把method="post"添加上就好了

主要的问题在于对get和post理解的不透彻:

http://www.w3schools.com/tags/att_form_method.asp

form的method用get导致中文乱码的更多相关文章

  1. js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码

    今天遇到一个问题找了很久发现: 使用js ajax post提交 ie和火狐.谷歌提交的编码不一致,导致中文乱码 //http://www.cnblogs.com/QGC88 $.ajax({ url ...

  2. 读取 properties 配置文件含有中文的value内容 导致中文乱码 的解决办法

    1.前言 因为装系统的时候把中文写在了系统路径,现在我想把这个路径写在properties里面来读取,可是 发现java 读取会导致中文乱码成 问号????的乱码  ,百度找了好多博客,基本都是一摸一 ...

  3. oracle服务端与客户端字符集不同导致中文乱码解决方案

    1.问题描述 用pl/sql登录时,会提示“数据库字符集(ZHS16GBK)和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果”,具体问题是中文乱码,如下图 2.问题分析 不管错误信息 ...

  4. Transfer-Encoding:chunked 返回数据过长导致中文乱码

    最近在写一个项目的后台时,前端请求指定资源后,返回JSON格式的数据,突然发现在返回的字节数过大时,最后的message中文数据乱码了,对于同一个接口的请求:当数据小时不会乱码,当数据量大了中文就乱码 ...

  5. MySQL对JSON类型UTF-8编码导致中文乱码探讨

    前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中 ...

  6. 中文字符通过URL转给PHP处理,导致中文乱码的解决办法!

    在JS中 var content = encodeURI(encodeURI('中文字符')); 在PHP服务端接收 header("Content-type: text/html; cha ...

  7. Java中使用FileputStream导致中文乱码问题的修改方案

    package com.pocketdigi; import java.io.File; import java.io.FileInputStream; import java.io.FileOutp ...

  8. GBK 文件在 sublime 保存时被强制保存为 utf-8 导致中文乱码, 恢复。

    原来在 CoverteToUTF8 的 README.zh_CN.md 文件里就有解决方法,如下: * 问:我的文件被保存为 UTF-8,而且变成了乱码,要如何恢复? 答:请打开这个文件,并确认它的编 ...

  9. [转]Oracle因安装时未设定字符集导致中文乱码的解决方案

    在CentOS 6.4上安装Oracle 11g没有设定字符集,采用的是操作系统默认字符集:WE8MSWIN1252,将字符集修改为:AL32UTF8. SQL> select userenv( ...

随机推荐

  1. openerp发送给群组信息

    发送给群组 self.pool.get('mail.group').message_post(cr, uid, [1],             body=_('Welcome to ! Please ...

  2. TOMCAT配置数据库连接池

      迁移时间--2017年7月9日15:27:02Author:Marydon TOMCAT配置数据库连接池 说明: a.数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数 ...

  3. 【Linux】gvim封装至gvi命令

    方法1:使用脚本 #!/bin/bash - #============================================================================ ...

  4. python之poplib模块下载并解析邮件

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之poplib模块下载并解析邮件 #https://github.com/michaelliao ...

  5. 22、集合(Collection)

    一.集合(Collection) 1.简介 Collection是一个接口,其定义了集合的相关功能方法.Collection继承了Iterable接口,而Iterable接口有一个方法Iterator ...

  6. JQuery 在线参考手册

    官方JQuery API  http://api.jquery.com/ 在线参考手册    http://www.w3school.com.cn/jquery/index.asp 在线参考手册1   ...

  7. 1038. Recover the Smallest Number (30)

    题目链接:http://www.patest.cn/contests/pat-a-practise/1038 题目: 1038. Recover the Smallest Number (30) 时间 ...

  8. 转载:substr() mb_substr() mb_subcut区别与联系

    substr() $rest = substr("abcdef", 1); //bcdef $rest = substr("abcdef", 1,5); //b ...

  9. BIND9源码分析之 多个view的情况下如何做dynamic update

    BIND中view的存在提供了一种较好的智能DNS方案,BIND可以根据用户的来源IP为其返回不同的Resource Record. 但是关于DNS动态更新的RFC2136中并没有提及view(vie ...

  10. Word 2007 Blog Test

    MAC       方法一: 引用 sudo gedit /etc/network/interfaces 将iface eth0 inet static后面添加一行 hwaddress ether 0 ...