Fckeditor for java 2.4中文乱码问题解决

1、首先登陆www.fckeditor.net/download下载FCKeditor的最新版本,需要下载2个压缩包,一个是基本应用。另一个是在为在jsp下所准备的配置。

  最新版本为:FckEditor2.6.3和FckEditor for java 2.4

  FCKeditor 2.6.3下载地址:sourceforge.net/project/downloading.php     
      具体下载地址:http://easynews.dl.sourceforge.net/sourceforge/fckeditor/FCKeditor_2.6.3.zip
       FCKeditor for Java 下载地址:sourceforge.net/project/downloading.php
     具体下载地址:http://switch.dl.sourceforge.net/sourceforge/fckeditor/fckeditor-java-2.4-bin.zip(发行版,如果需要源码或者demo包请另行下载)

下载之后分别为:FCKeditor_2.6.3.zip 和 fckeditor-java-2.4-bin.zip(fckeditor-java-demo-2.4.war)将它们分别解压。

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hailang43/archive/2009/05/17/4194194.aspx

本文主要探讨中文乱码的解决方法,在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了。


给FckEditor瘦身

      删除fckeditor目录下面所有以“_”开头的文件或者文件夹,像"_samples"、"_documentation.html“等

     删除fckeditor目录下面除了,fckconfig.js   fckpackage.xml fckstyles.xml   fcktemplates.xml外的所有文件,当然要保留editor文件夹

     删除fckeditor/editor/lang目录下面除了en.js、 zh-cn.js外的所有文件

     删除fckeditor\editor\filemanager目录下面的connectors文件夹

     删除editor\skins目录下面除了default下面的文件夹,这个里面是皮肤,共有三种,可以在fckconfig.js里面设置。

 

 

获取FCKEditor 的数据根据:FCKEditor的实例名称,通过request.getParamer("实例名称");获取文本数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值