FCKEitor V2.6.2的使用及解决全部中文乱码问题

本文详细介绍了如何在Java环境下使用FCKEditor V2.6.2,包括在Tomcat中创建web项目、添加依赖库、配置web.xml以及解决中文乱码问题。通过解析源码修改上传文件时的编码设置,并调整Tomcat服务器配置以支持UTF-8编码,从而解决图片名称和文件夹创建时的乱码问题。

网上有很多关于FCKEitor for java的使用介绍文章,不过版本都是以前的了,跟目前最新的版本不符,我只好自己摸索。

使用最新版V2.6.2,fckeditor-java-2.4-bin。看很多介绍文章看的头疼,后来我下了个fckeditor-java-demo-2.4.war,直接参照结合源码fckeditor-java-2.4-src改了来用,也不用自己过多的配置。

第一步、使用tomcatPlugin在eclipse中建个web项目fck,拷贝commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,slf4j-api-1.5.2.jar,slf4j-simple-1.5.2.jar(可以去demo中找),到/WEB-INF/lib中。

第二步、其他的文件参照demo里的直接拷了过来。项目目录截图如下:(阴影部分都是从demo中复制的)

第三步、主要是三个资源文件和一个tld文件:

复制源码包中fckeditor-java-2.4/java-core/src/main/java下的两个源码文件夹:net和org到项目src中,复制fckeditor-java-2.4/java-core/src/main/resources/net/fckeditor/handlers下的default.properties到包net.fckeditor.handlers中。

复制demo文件夹WEB-INF/classes下的fckeditor.properties和log4j.properties到src目录中。注意:知道包的概念的话,应该不会把net和org文件夹搞错的吧?

去demo中的java-core-2.4.jar找到并复制FCKeditor.tld到WEB-INF/tlds/中,然后按下面配置

1、demo中的web.xml需要修改头部的声明,全部内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- 1.这里的命名空间需要修改 -->
  3. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  6.     version="2.5">  
  7.     
  8. <display-name>FCKeditor.Java Sample Web Application</display-name>
  9.     <description>FCKeditor.Java Sample Web Application</description>
  10.     <servlet>
  11.         <servlet-name>Connector</servlet-name>
  12.         <servlet-class>
  13.             net.fckeditor.connector.ConnectorServlet
  14.         </servlet-class>
  15.         <load-on-startup>1</load-on-startup>
  16.     </servlet>
  17.     <servlet-mapping>
  18.         <servlet-name>Connector</servlet-name>
  19.         <url-pattern>
  20.             /fckeditor/editor/filemanager/connectors/*
  21.         </url-pattern>
  22.     </servlet-mapping>
  23.     <!-- 2.这里需要修改为jsp-config标签,两次修改才符合tomcat6.0 的要求,旧版就不用了 -->
  24.     <jsp-config>
  25.         <taglib>
  26.             <taglib-uri>http://java.fckeditor.net</taglib-uri>
  27.             <taglib-location>/WEB-INF/tlds/FCKeditor.tld</taglib-location>
  28.         </taglib>
  29.     </jsp-config>
  30. </web-app>
好了,基本配置就是这样了。启动tomcat,浏览http://localhost/fck/,就可以看到界面了。

注:我是先做成功才写的这篇笔记,生怕自己写漏了哪些部分,有问题请留言说明。

中文乱码问题的解决。

我遇到两种情况的乱码问题。

第一种,插入图片时,图片名字包含中文则上传后乱码(推断所有的上传功能都是这样)。这就是为什么我要在以上的项目配置中使用fckeditor-java源码的原因了,改起来方便啊。2.4包中上传文件的功能已经跟以前的不一样了,上传在net.fckeditor.connector.ConnectorServlet中实现。找到这个类中以下的代码:

  1.                 String newFilename = null;
  2.                 FileItemFactory factory = new DiskFileItemFactory();
  3.                 ServletFileUpload upload = new ServletFileUpload(factory);
  4.                 /* 添加这一句,设定编码 */
  5.                 upload.setHeaderEncoding("UTF-8");
  6.                 try {
  7.                     List<FileItem> items = upload.parseRequest(request);
  8.                     // We upload only one file at the same time
  9.                     FileItem uplFile = items.get(0);
  10.                     String rawName = UtilsFile.sanitizeFileName(uplFile.getName());
  11.                     String filename = FilenameUtils.getName(rawName);
  12.                     String baseName = FilenameUtils.removeExtension(filename);
  13.                     String extension = FilenameUtils.getExtension(filename);
我只在第六行增加 upload.setHeaderEncoding("UTF-8");就解决了中文名称乱码问题。

第二种,图片名包含中文也能上传成功了,但是编辑器中居然无法显示,而且测试使用图片面板的文件夹创建功能,创建中文名的文件夹,出现乱码。开始以为是fck的js有问题,后来受一文章(后来找,居然找不到了)启示,对tomcat的server.xml进行了修改,修改部分如下:

  1. 在<Connector port="80" protocol="HTTP/1.1" 
  2.      connectionTimeout="20000" redirectPort="8443"  URIEncoding="UTF-8"  />
  3.   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" 
  4.        URIEncoding="UTF-8"  />
    1.   这两个connector标签中加入了URIEncoding="UTF-8",重启tomcat,此时所有的中文
    2.  乱码问题都已经解决了。

希望本文对想使用FCKEitor V2.6.2版本的朋友有所帮助。

转载请注明此版权及出处!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值