解决中文乱码通用工具
//配置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;}}
解决中文乱码通用工具相关推荐
- sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?
很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...
- php utf-8读取,PHP读取文件,解决中文乱码UTF-8的方法分析
PHP读取文件,解决中文乱码UTF-8的方法分析,方法,中文,操作技巧,文本,本文 PHP读取文件,解决中文乱码UTF-8的方法分析 易采站长站,站长之家为您整理了PHP读取文件,解决中文乱码UTF- ...
- java txt中文乱码,JAVA读取TXT文件 可解决中文乱码问题
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...
- AJAX解决中文乱码问题
一.解决中文乱码问题的方法1:页面端发出的数据作一次encodeURI,如:encodeURI($("#userName").val() ...
- java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...
- js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数
js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数 参考文章: (1)js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数 (2)https://www.cnblogs.co ...
- [转]QT中QString与string的转化,解决中文乱码问题
[转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...
- php如何解决中文乱码问题?
php如何解决中文乱码问题? 参考文章: (1)php如何解决中文乱码问题? (2)https://www.cnblogs.com/wszz/p/7978610.html (3)https://www ...
- 通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0......
原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对 ...
最新文章
- 我竟然混进了Python高级圈子!
- ZOOKEEPER安装及测试
- TCP/IP/ICMP 学习实践
- ubuntu raid 配置磁盘阵列
- c语言图形化编程入门_C语言C++新手入门,VS2013编程器安装教程
- 计算 1!+2!+3!+……+10!
- 索引超出矩阵维度_搜索引擎技术之倒排索引原理详解,及案例分析
- 五大板块(4)——链表
- mysql查询库表变更信息_PythonMySQL进行数据库表变更和查询
- 简单易用线上引流测试工具:GoReplay
- Qt Creator 使用技巧(功能快捷键如注释、声明和实现之间切换)
- 2019蓝桥杯 - 迷宫
- matplotlib出图细节以及提高出图质量(高dpi)
- 随风摇曳的她——美蕨(matlab实现)
- 解决win10系统不能打开.chm类型的文件
- MD5密码哈希算法(c语言实现)
- 渝海手机号码归属地查询工具php版 v1.1
- 合理利用计算机虚拟内存,合理设置虚拟内存,目前8G内存足够日常使用
- 火车头如何html发布,火车头采集器教程:WEB在线发布模块的修改
- opencv打卡49:开运算 cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)