最近经常做小型的B/S系统,经常会要用到文本编辑器,我自己机子上的是IE7,一切正常,到了QA那边,就显示不出来,然后再IE6上面也能显示正常,非常无语,用的FCK编辑器,非常郁闷,然后开始查资料。网上都没非常详细的信息,看了官网的解释好像是因为IE8改变了域访问安全策略,换了CKeditor也不行,后来同事也遇到同样问题,感觉应该是编码问题,然后把设置编码的过滤器给去掉了。。。行了。。。还有同事发现如果项目没有结果SVN或者CVS版本控制的话。。也能正常显示。。。。我有点搞不懂到底是为什么,所以知道的大侠费点心思留个言给我。。。。。。
1 楼
xcc258
2010-08-31
先已解决。。。。在字符过滤器中加上判断,如果是要过滤的文件时fckedit的所属文件。则不做过滤。。。直接跳过。。。大家如果和我的情况一样。可以试一下。。提醒下大家。。修改后。重新部署下程序,另外删除下浏览器的缓存。。。。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) { String path = ((HttpServletRequest) request).getServletPath(); try { String encoding = this.encoding; if (encoding != null) { if (path.indexOf("fckeditor") > -1) { //System.out.println("path-----"+path); } else { request.setCharacterEncoding(encoding); // 这个是设置请求到的内容的编码转换,从web.xml里面设置的 response.setContentType("text/html; charset=gb2312"); // 这个是设置你输出到页面上所用的编码 } } filterChain.doFilter(request, response); } catch (ServletException sx) { filterConfig.getServletContext().log(sx.getMessage()); } catch (IOException iox) { filterConfig.getServletContext().log(iox.getMessage()); } }