FCKeditor中文亂碼解決辦法

FCKeditor中文亂碼解決辦法
在使用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。

網上很多文章都說修改/editor/filemanager/browser/default/frmupload.html,在head中加一個meta
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ,其實憑這個根本不行。
解決這個問題得益於:
http://gemini.javaeye.com/blog/135858,在這裏謝謝這篇文章的作者。


/////////////////////////////////////////////////////////////////////////

 

查看文章
FCKeditor中文亂碼及上傳失敗問題2008-02-28 11:59FCKeditor中文亂碼問題

在FCKeditor的使用中,主要有在3個地方會出現中文亂碼:

① 在“瀏覽服務器”頁面中創建新目錄時

問題:當點擊“插入/編輯圖象”或“插入/編輯Flash”時,會彈出“圖象屬性”或“Flash屬性”對話框,然後單擊其中的“瀏覽服務器”按鈕時,會打開“瀏覽服務器”的頁面,在這個頁面中創建中文名目錄時會出現亂碼。

解決:修改Web容器的字符編碼。因爲FCKeditor的默認字符編碼是UTF-8,所以將Web容器的字符編碼也修改成UTF-8。如果Web容器用的是Tomcat,打開文件%CATALINA_HOME%/conf/server.xml,修改如下:

<Connector
port="8080"
redirectPort="8443"
minSpareThreads="25"
connectionTimeout="60000"
connectionLinger="-1"
serverSoTimeout="0"
maxSpareThreads="75"
maxThreads="150"
tcpNoDelay="true"
maxHttpHeaderSize="8192"
IEncoding="UTF-8">
</Connector>
<Connector
port="8009"
redirectPort="8443"
protocol="AJP/1.3"
IEncoding="UTF-8">
</Connector>


② 在“瀏覽服務器”頁面中上傳文件時

問題:在和①同樣的方式打開的“瀏覽服務器”頁面中上傳中文名的文件時會出現亂碼。

解決:打開項目WebRoot中的文件/editor/filemanager/browser/default/frmupload.html,在head中加一個meta:

<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"如下:

<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask">
<classpath refid="compile.classpath"></classpath>
</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目錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章