Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34519
  • 博文数量: 12
  • 博客积分: 610
  • 博客等级: 上士
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 23:09
文章分类
文章存档

2008年(12)

我的朋友
最近访客

分类: Java

2008-04-12 21:16:15

FCKeditor的使用中,主要有在3个地方会出现中文乱码

① 在“浏览服务器”页面中创建新目录时

问题:当点击“插入/编辑图象”或“插入/编辑Flash”时,会弹出“图象属性”或“Flash属性”对话框,然后单击其中的“浏览服务器”按钮时,会打开“浏览服务器”的页面,在这个页面中创建中文名目录时会出现乱码。

解决:修改Web容器的字符编码。因为FCKeditor的默认字符编码是UTF-8,所以将Web容器的字符编码也修改成UTF-8。如果Web容器用的是Tomcat,打开文件%CATALINA_HOME%/conf/server.xml,修改如下:

  1. <Connector  
  2.     port="8080"  
  3.     redirectPort="8443"  
  4.     minSpareThreads="25"  
  5.     connectionTimeout="60000"  
  6.     connectionLinger="-1"  
  7.     serverSoTimeout="0"  
  8.     maxSpareThreads="75"  
  9.     maxThreads="150"  
  10.     tcpNoDelay="true"  
  11.     maxHttpHeaderSize="8192"  
  12. IEncoding="UTF-8">  
  13. Connector>  
  14. <Connector  
  15.     port="8009"  
  16.     redirectPort="8443"  
  17.     protocol="AJP/1.3"  
  18. IEncoding="UTF-8">  
  19. Connector>  
 

② 在“浏览服务器”页面中上传文件时

问题:在和①同样的方式打开的“浏览服务器”页面中上传中文名的文件时会出现乱码。

解决:打开项目WebRoot中的文件/editor/filemanager/browser/default/frmupload.html,在head中加一个meta:

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

③ 在“图象属性”或“Flash属性”对话框中上传文件时

问题:当点击“插入/编辑图象”或“插入/编辑Flash”时,会弹出“图象属性”或“Flash属性”对话框,点击其中的“上传”选项卡,点击“浏览...”按钮,选择一个中文名的文件,再点击“发送到服务器上”按钮,上传后的文件名是乱码。

解决:修改FCKeditor.Java源代码。通过Eclipse修改源码然后重新打包成jar文件比较方便。在Eclipse里新建Web工程FCKeditor-java-2.3,这里要注意,因为FCKeditor.Java的WebRoot目录名是web,所以建议新建工程时,WebRoot目录名也命名为web。把FCKeditor.Java里的相应目录复制到工程下。在src里找到ConnectorServlet.java和SimpleUploaderServlet.java两个文件,分别在两个文件中找到DiskFileUpload upload = new DiskFileUpload();,在其后加入upload.setHeaderEncoding("utf-8");。然后把Tomcat安装目录下/server/lib里的catalina-ant.jar复制到项目的/WEB-INF/lib下。打开build.xml,修改property name="catalina.home"成Tomcat的安装目录。修改taskdef name="deploy"、taskdef name="list"、taskdef name="reload"、taskdef name="undeploy"如下:

  1. <taskdef name="deploy"   classname="org.apache.catalina.ant.DeployTask">  
  2.     <classpath refid="compile.classpath">classpath>  
  3. taskdef>  
  4. <taskdef name="list"     classname="org.apache.catalina.ant.ListTask">  
  5.     <classpath refid="compile.classpath">classpath>  
  6. taskdef>  
  7. <taskdef name="reload"   classname="org.apache.catalina.ant.ReloadTask">  
  8.     <classpath refid="compile.classpath">classpath>  
  9. taskdef>  
  10. <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask">  
  11.     <classpath refid="compile.classpath">classpath>  
  12. taskdef>  

然后在Eclipse的Outline窗口中运行Ant的dist,就会生成的新的FCKeditor-2.3.jar。将使用了FCKeditor的项目中的FCKeditor-2.3.jar替换成这个新的。

上传失败问题

这里不考虑服务器方的原因。首先检查web.xml中SimpleUploader这个Servlet的配置里,是否把参数enabled设为了false。

另外,FCKeditor会自动创建web.xml中SimpleUploader的参数baseDir指定的目录。当通过“浏览服务器”页面上传文件时,如果baseDir下没有相应的Image或Flash目录,FCKeditor会自动创建Image或Flash目录;但是当通过“上传”选项卡中的“发送到服务器上”按钮上传文件时,如果baseDir下没有相应的Image或Flash目录,FCKeditor就会报错,这时需要你手动在baseDir下新建Image或Flash目录

阅读(1559) | 评论(0) | 转发(0) |
0

上一篇:Struts2实现文件上传

下一篇:没有了

给主人留下些什么吧!~~