我做在线打开的时候将word文档转换为html文件,保存在temp文件夹下,然后通过链接打开html文件实现“在线打开word”的功能,结果产生了乱码,原因是在windows系统下生成的html文件默认是“gb2312"编码的,而我们的网页使用了编码过滤器将所有请求全部改为”UTF-8“编码的了。所以我就将这个编码过滤器改进了下,先对请求路径进行判断,如果请求是来自保存html文件的"temp“文件夹就进行特殊处理编码为”gb2312“从而解决乱码。

这个过滤器对“temp”文件夹下的文件进行“GB2312”编码,对所有其他请求进行“UTF-8”编码:

Code:
  1. public class EncodeFilter implements Filter {
  2. public void destroy() {
  3. }
  4. public void doFilter(ServletRequest request, ServletResponse response,
  5. FilterChain china) throws IOException, ServletException {
  6. HttpServletRequest httprequest = (HttpServletRequest)request;
  7. String servletPath = httprequest.getServletPath();
  8. String dir = null;
  9. if(servletPath.indexOf("/", 1)>1)
  10. dir = servletPath.subSequence(servletPath.indexOf("/", 0)+1, servletPath.indexOf("/", 1)).toString();
  11. if(dir!=null&&"temp".equals(dir)){
  12. request.setCharacterEncoding("GB2312");
  13. response.setCharacterEncoding("GB2312");
  14. }else{
  15. request.setCharacterEncoding("UTF-8");
  16. response.setCharacterEncoding("UTF-8");
  17. }
  18. china.doFilter(request, response);
  19. }
  20. public void init(FilterConfig arg0) throws ServletException {
  21. }
  22. }

在web.xml文件中的配置(与tomcat版本有关)

Code:
  1. <filter>
  2. <filter-name>EncodeFileter</filter-name>
  3. <filter-class>com.star.util.EncodeFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>EncodeFileter</filter-name>
  7. <servlet-name>*</servlet-name>
  8. </filter-mapping>

字符编码过滤器中对特殊的路径进行特殊处理相关推荐

  1. java 字符过滤器_Java Web---登录验证和字符编码过滤器

    什么是过滤器? 在Java Web中,过滤器即Filter.Servlet API中提供了一个Filter接口(javax.servlet.Filter).开发web应用时,假设编写的Java类实现了 ...

  2. spring mvc字符编码过滤器 CharacterEncodingFilter ,添加例外url

    前言 spring 4.3.4.RELEASE CharacterEncodingFilter : Spring MVC 提供的字符集过滤器,用于处理项目中的乱码问题 项目比较老,大部分url使用的是 ...

  3. mysql jdbc字符编码_java中jdbc/sql出现编码问题

    com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column '???è??é"?è??' in 'field li ...

  4. jsp里面声明了utf-8格式,也写了字符编码过滤器,数据库编码也是utf-8,就连java.......

    打开Tomcat的server.xml文件的时候发现我的配置是这样的 maxSpareThreads="75" enableLookups="false" re ...

  5. 过滤器实例——字符编码Filter

    字符编码过滤器是一种快速解决Tomcat服务器中request和response乱码问题的解决方案.一般程序中要解决request.resopnse传中文参数乱码问题时一般通过在取参数前对reques ...

  6. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  7. php 转码iconv,PHP iconv()函数转字符编码的问题(转)

    在php函数库有一个函数:iconv(),iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库. 最 近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页 ...

  8. js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind

    数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...

  9. 【转】刨根究底字符编码【2.0版】(2):关键术语解释

    上一篇中讲道,字符编码所涉及的面非常广,向下的话,涉及到计算机的底层技术,甚至是硬件实现. 因此,这里就让我们从字符编码涉及到的最基本的术语讲起.大部分术语你可能都已经有了解了,但我们现在从字符编码的 ...

最新文章

  1. JavaScript函数大全
  2. 高颜值俄罗斯天才少女加入华为,曾获“编程界的奥林匹克”世界冠军
  3. latex转word_Latex与word转换及相关问题解决方法
  4. Mac下提示APP已损坏,打不开,请移至废纸篓
  5. 分布式事务Seata中的三个角色
  6. css基础内容之background
  7. AI发来贺电,您的2333号奶牛已进入恋爱时节 | 野性的呼唤
  8. Linux系统管理第七周作业【Linux微职位】
  9. 里皮正式告别国足:我尽了最大努力让球队成长
  10. python中文字体下载_对Python生成汉字字库文字,以及转换为文字图片的实例详解...
  11. 基于51单片机的四通道交通灯设计
  12. 在VS Code上搭建C/C++环境
  13. JSP常用标记——(web基础学习笔记)
  14. 关于计算机的职业畅想,我的职业畅想作文
  15. 3、Vue+ElementUI制作用户登录页面
  16. win10查询计算机ip和用户名和密码,Win10怎么查看ip地址_Win10查看本机ip地址-192路由网...
  17. EFM32芯片jlink无法连接,无法调试,解锁流程
  18. Linux 命令(212)—— ssh-add 命令
  19. 获取手机通讯录加好友
  20. 高级售前客户服务专员考试

热门文章

  1. 【免费下载】2021年9月热门报告盘点(附热门报告列表及下载链接)
  2. PyTorch实战福利从入门到精通之一——PyTorch框架安装
  3. javascript的jQuery库小结(1)
  4. 【选手分享】你想知道的比赛思路这里都有!速查收!
  5. SIM: 基于搜索的超长行为序列上的用户兴趣建模
  6. python post cookies_python 之post、get与cookie实战
  7. 安卓手机怎么root_怎么在腾讯手机管家中一键获取Root权限
  8. java打开的文件过多_显示打开文件数目过多的解决方法.
  9. ffmpeg sdk java_推荐一个强大的音视频处理的开源项目!
  10. 深度学习与神经网络——邱锡鹏