Fckediotr 2.4 for java的具体配置请参考:FckEditor for java 2.4的JSP 配置方法详解

      本文主要探讨中文乱码的解决方法,在Fckeditor For Java中的中文乱码主要有三个方面:
一、中文图片上传后文件名显示为乱码的情况
二、创建目录时中文为乱码的情况
三、当引用的图片为中文时,在页面中显示为红叉的情况
这种乱码情况,就我目前的感觉而言是Fckeditor的Bug,不是我们有没有配置正确的问题了,要想解决以上三个问题,需要我们修改Fckeditor的源码。
对于问题1和2我们可以把它用一个方法解决掉,使用UUID(此类位于java.util.UUID,不明白的可以查API)解决掉此问题。思路是把这些上传上来的中文名字进行随机重命名英文字符串,这样就不存在中文问题了。
由于我们无法直接修改FckEditor,所以需要我们重写ConnectorServlet这个Servlet文件,我们在我们的项目里面新建一个Class文件,命名为ConnectorServlet,直接把net.fckeditor.connector.ConnectorServlet的内容copy过来。另外需要修改web.xml文件把servlet的指向定位到我们自己重写的Servlet
假如我们把我们新建的ConnectorServlet放在包test.fckeditor下面,则WEB.XML需要把:
<servlet-class>
   net.fckeditor.connector.ConnectorServlet
</servlet-class>
改成
<servlet-class>
    test.fckeditor.ConnectorServlet
   </servlet-class>
其他保持不变就即可!
在我们copy后会出现一个报错,说是Messages这个找不到,我们使用Eclipse的修复功能导入net.fckeditor.connector.Messages这个包就可以了。
下面我们开始修改这个Servlet,解决我们上述的三个中文乱码问题。
第一个问题:找到doPost方法中的try...catch语句块。在try前面增加这么一行语句:
upload.setHeaderEncoding("UTF-8");
在这里我们对于这个upload进行编码,解决中文问题。到这里对于项目进行重新布署就会发现再上传中文名字的图片就不会显示为乱码了。
第二个问题:找到doGet方法中的
String newFolderStr = UtilsFile.sanitizeFolderName(request
             .getParameter("NewFolderName"));
修改为:
String tempStr = request.getParameter("NewFolderName");
      tempStr = new String(tempStr.getBytes("iso8859-1"),"utf-8");     
      String newFolderStr = UtilsFile.sanitizeFolderName(tempStr);
在原来的代码中没有对rerquest的数据进行重新编码,所以遇到中文就会出现乱码!
第三个问题:其实有两种解决方法,一是修改服务器的URL编码,但是修改服务器的话,在我们自己的电脑上比较方便,如果是我们要放到自己买的空间中就不容易了。另外如果修改了服务器的编码,可能影响到其它项目。所以这种方法就不写了
二是我们使用UUID对上传的文件进行重命名成英文字条串。
找到doPost中的try语句块中的第一个if 即:
if (!ExtensionsHandler.isAllowed(resourceType, extension))
       ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION);
在这段代码前面添加下面的一行语句:
filename = UUID.randomUUID().toString()+"."+extension;     //extension为扩展名,在上文中得到的
这样我们的三个问题都解决了。如果我们做了第三步,那第一个修改也就没有什么作用了,所以使用的话,只进行二三步就OK了。

转载于:https://blog.51cto.com/77857/151974

fckeditor 中文乱码问题相关推荐

  1. SpringSecurity安全验证中文乱码问题

    使用SpringSecurity做安全验证时发现form表单中提交中文名会出现乱码问题. 原因是因为我在web.xml配置文件中将springSecurityFilterChain拦截器放在了 cha ...

  2. httpclient工具类,post请求发送json字符串参数,中文乱码处理

    在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...

  3. 关于HttpClient上传中文乱码的解决办法

    使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...

  4. Servlet、MySQL中文乱码

    1.Servlet中文乱码: 在doPost或doGet方法里,加上以下两行即可: response.setContentType("text/html;charset=UTF-8" ...

  5. android java 中文乱码_android读写中文如何避免乱码详解

    前言 android读取文件中文出现乱码的原因无非就是,读取文件的字符格式与写如文件的格式不一致.因此,避免中文乱码,要在写入文件的时候按照一定的格式写入,读取的时候按照一定的格式读取.这样对应就不会 ...

  6. java servlet 参数乱码_JSPServlet处理参数中的中文乱码总结

    从form表单提交信息到一个JSP页面或者一个Servlet进行处理的时候,提交的中文信息若不加处理的话就会显示乱码,如一串???.现在通过一个例子来进行总结如下: 写一个用户信息提交页面,通过这个页 ...

  7. php pdo 中文乱码,php pdo oracle中文乱码的快速解决方法

    在/etc/profile.d/简历oracle.sh 内容如下在NLS_LANG设置编码ORACLE_HOME=/usr/lib/oracle/12.1/client64 C_INCLUDE_PAT ...

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

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

  9. JAVA中文注解驱动,解决api接口返回的json里面出现中文乱码的问题

    在src/main/resources/springmvc-servlet.xml中加入 <!-- 中文注解驱动 --> <mvc:annotation-driven>< ...

最新文章

  1. web本地存储-IndexedDB
  2. 最长上升子序列(LIS)的求法
  3. 【渝粤题库】陕西师范大学700004 植物生理学
  4. 获取GridView中RowCommand的当前索引行
  5. linux c程序面试题,嵌入式linux面试题解析(二)——C语言部分一
  6. JQuery 快速入门一篇通
  7. iOS上架被拒理由及相关解决方案记录
  8. js 简单语法 集合
  9. matlab 脚本文件 函数,Matlab 脚本文件script和函数文件function的区别
  10. 日常排版--word中的一些小技巧(交叉引用)
  11. 联想键盘sk8821的Fn功能键
  12. oom killer lmkd killer
  13. 计算机算法基础_如何自学计算机专业
  14. WPF StatusBar控件
  15. 学生计算机编程比赛获奖感言,学生技能大赛获奖感言
  16. 逻辑强化(03)真假推理 知识练习
  17. 南京工业大学计算机学院考研真题,南京工业大学考研真题汇总
  18. 超级好用的配色工具Palettte
  19. 微信小程序仿朋友圈,实现点赞和评论功能
  20. 豆瓣,清华源下载 pip3

热门文章

  1. x61 linux 驱动 无线网卡,Linux环境Thinkpad X61 4G内存Mtrr表错误
  2. centos7共享网络盘_实验08:局域网文件和互联网文件的共享
  3. java ppt控件_Java版PPT操作控件Spire.Presentation v3.3.5新版来袭!支持转换GroupShape到图片...
  4. python FastDFS
  5. 网络通信 public ip 和 private ip
  6. TensorFlow tf.keras.layers.Permute
  7. 1.7 理解 Dropout
  8. ESXI6.7虚拟机配置LACP静态汇聚端口网络负载均衡分流
  9. 为什么我们要从MySQL迁移到TiDB?(转)
  10. Mysql学习总结(56)——MySQL用户管理和权限设置