FCKeditor中文乱码解决办法

xiaoxiao2024-12-21  8

在使用FCKeditor2.4.3时若上传的图片或者flash的文件名为中文时,发现一下情况: 问题1 : 当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中选择上传按钮,如果上传的文件名为中文时会出现乱码。 解决办法: 找到FCKeditor.java解压包中的 src目录下SimpleUploaderServlet.java做如下修改: 找到该程序中DiskFileUpload upload = new DiskFileUpload(),然后在该行下面添加 upload.setHeaderEncoding("UTF-8"),重新编译成class文件并利用WinRAR把该class文件 添加到FCKeditor-2.3.jar中相应的位置,然后覆盖你的 web项目中原来的jar包便可。 问题2 : 当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中使用浏览 服务器按钮上传中文文件时会出现乱码。 解决办法: 和问题1的解决办法基本一样,只不过需要在ConnectorServlet.java中添加 upload.setHeaderEncoding("UTF-8")便可。 问题3 : 当点击“插入/编辑图像”或者“插入/编辑Flash”按钮时,在弹出的对话框中点击浏览 服务器按钮,会弹出“浏览服务器”页面,如果想在该页面中使用Create New Folder按钮 来创建一个中文目录时,会出现中文目录乱码。 解决办法: web容器的编码要与FCKeditor默认的编码UTF-8一致,如果使用的是Tomcat,需修改 tomcat服务器中conf目录下的server.xml。如下: <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" /> <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="utf-8"/> 其实就是在原来的基础上添加URIEncoding的属性值为utf-8。

注:对于问题3,这种解决办法不可取,最好不要去修改服务器的编码,否则会影响到服务器上其它的工程。解决这个编码的问题可以修改源代码或者从新编写一个类来处理。通过观察打开的上传浏览对话框可以找对对应的htm页面和负责处理上传文件名称的com.fredck.FCKeditor.uploader. ConnectorServlet这个类,然后找到对应的参数,转换编码便可。如:String newFolderStr=request.getParameter("NewFolderName");

newFolderStr=new String(newFolderStr.getBytes("iso8859-1"),"utf-8");

网上很多文章都说修改/editor/filemanager/browser/default/frmupload.html,在head中加一个meta

<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>,其实凭这个不行。 解决这个问题得益于: http://gemini.javaeye.com/blog/135858,在这里谢谢这篇文章的作者。
转载请注明原文地址: https://www.6miu.com/read-5021625.html

最新回复(0)