//配置filter解决乱码问题,记得要在web.xml里面配置,别的就不需要变化了/*** 通用编码解决方案* */
public class GenericEncodingFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {// 转型为与协议相关对象HttpServletRequest httpServletRequest = (HttpServletRequest) request;// 对request包装增强HttpServletRequest myrequest = new MyRequest(httpServletRequest);chain.doFilter(myrequest, response);}public void init(FilterConfig filterConfig) throws ServletException {}}// 自定义request对象
class MyRequest extends HttpServletRequestWrapper {private HttpServletRequest request;private boolean hasEncode;public MyRequest(HttpServletRequest request) {super(request);// super必须写this.request = request;}// 对需要增强方法 进行覆盖@Overridepublic Map getParameterMap() {// 先获得请求方式String method = request.getMethod();if (method.equalsIgnoreCase("post")) {// post请求try {// 处理post乱码request.setCharacterEncoding("utf-8");return request.getParameterMap();} catch (UnsupportedEncodingException e) {e.printStackTrace();}} else if (method.equalsIgnoreCase("get")) {// get请求Map<String, String[]> parameterMap = request.getParameterMap();if (!hasEncode) { // 确保get手动编码逻辑只运行一次for (String parameterName : parameterMap.keySet()) {String[] values = parameterMap.get(parameterName);if (values != null) {for (int i = 0; i < values.length; i++) {try {// 处理get乱码values[i] = new String(values[i].getBytes("ISO-8859-1"), "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}}}hasEncode = true;}return parameterMap;}return super.getParameterMap();}@Overridepublic String getParameter(String name) {Map<String, String[]> parameterMap = getParameterMap();String[] values = parameterMap.get(name);if (values == null) {return null;}return values[0]; // 取回参数的第一个值}@Overridepublic String[] getParameterValues(String name) {Map<String, String[]> parameterMap = getParameterMap();String[] values = parameterMap.get(name);return values;}}

解决中文乱码通用工具相关推荐

  1. sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?

    很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...

  2. php utf-8读取,PHP读取文件,解决中文乱码UTF-8的方法分析

    PHP读取文件,解决中文乱码UTF-8的方法分析,方法,中文,操作技巧,文本,本文 PHP读取文件,解决中文乱码UTF-8的方法分析 易采站长站,站长之家为您整理了PHP读取文件,解决中文乱码UTF- ...

  3. java txt中文乱码,JAVA读取TXT文件 可解决中文乱码问题

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  4. AJAX解决中文乱码问题

    一.解决中文乱码问题的方法1:页面端发出的数据作一次encodeURI,如:encodeURI($("#userName").val()                       ...

  5. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...

  6. js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数

    js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数 参考文章: (1)js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数 (2)https://www.cnblogs.co ...

  7. [转]QT中QString与string的转化,解决中文乱码问题

    [转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...

  8. php如何解决中文乱码问题?

    php如何解决中文乱码问题? 参考文章: (1)php如何解决中文乱码问题? (2)https://www.cnblogs.com/wszz/p/7978610.html (3)https://www ...

  9. 通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0......

    原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对 ...

最新文章

  1. 我竟然混进了Python高级圈子!
  2. ZOOKEEPER安装及测试
  3. TCP/IP/ICMP 学习实践
  4. ubuntu raid 配置磁盘阵列
  5. c语言图形化编程入门_C语言C++新手入门,VS2013编程器安装教程
  6. 计算 1!+2!+3!+……+10!
  7. 索引超出矩阵维度_搜索引擎技术之倒排索引原理详解,及案例分析
  8. 五大板块(4)——链表
  9. mysql查询库表变更信息_PythonMySQL进行数据库表变更和查询
  10. 简单易用线上引流测试工具:GoReplay
  11. Qt Creator 使用技巧(功能快捷键如注释、声明和实现之间切换)
  12. 2019蓝桥杯 - 迷宫
  13. matplotlib出图细节以及提高出图质量(高dpi)
  14. 随风摇曳的她——美蕨(matlab实现)
  15. 解决win10系统不能打开.chm类型的文件
  16. MD5密码哈希算法(c语言实现)
  17. 渝海手机号码归属地查询工具php版 v1.1
  18. 合理利用计算机虚拟内存,合理设置虚拟内存,目前8G内存足够日常使用
  19. 火车头如何html发布,火车头采集器教程:WEB在线发布模块的修改
  20. opencv打卡49:开运算 cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

热门文章

  1. 学完这9个课程,你将达到高级黑客水平
  2. jmeter的json提取器和json提取器取值
  3. 什么是java中的反射?反射的一些常用方法
  4. csgo本地服务器修改武器伤害,CSGO武器伤害值计算告诉你是怎么死的
  5. js获取近六个月时间
  6. javaweb第九天 JDBC
  7. Ubuntu下删除键失效的问题
  8. k均值聚类算法伪代码
  9. 动态js创建数组对象
  10. ISA SERVER2000 学习笔记