jsp fckeditor 上傳中文圖片亂碼問(wèn)題的解決方法
更新時(shí)間:2009年02月15日 18:39:30 作者:
徹底解決fckeditor(jsp版)上傳中文圖片亂碼問(wèn)題,我這里用的編碼是utf-8的,這里用的fckeditor 是2.6的,fckeditor.java包是2.3的
經(jīng)過(guò)我修改ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件,重新生成fckeditor-java-2.3.jar包,要解決所有的亂碼問(wèn)題,有3部要修改
1.修改Web容器的字符編碼,如果Web容器用的是Tomcat,則修改conf/server.xml文件,在兩個(gè)Connector中添加“URIEncoding="utf-8"”,我這里用的是utf-8編碼,所以修改成utf-8,若項(xiàng)目是gb2312編碼,則設(shè)置為“URIEncoding="gb2312"”。
2.在“瀏覽服務(wù)器”頁(yè)面中上傳文件時(shí),打開(kāi)項(xiàng)目WebRoot中的文件/editor/filemanager/browser/default/frmupload.html,在head中加一個(gè)meta: ,看看該文件是不是utf-8格式的,若不是,則轉(zhuǎn)換成utf-8,若你用的不是utf-8則轉(zhuǎn)成你用的那種編碼,上面charset也設(shè)置成你用的編碼
3.修改ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件,我在這兩個(gè)文件中都是加了一個(gè)靜態(tài)變量encoding,private static String encoding;保存項(xiàng)目中的編碼, 若在web.xml文件中沒(méi)有給這個(gè)變量傳值的話,默認(rèn)是gb2312,如下代碼if(encoding.isEmpty()){encoding="gb2312";},在ConnectorServlet.java的doGet與doPost的開(kāi)頭部分加入request.setCharacterEncoding(encoding);將請(qǐng)求的字符集編碼設(shè)置成項(xiàng)目中的編碼,在ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件中的DiskFileUpload upload = new DiskFileUpload();后面加入upload.setHeaderEncoding(encoding);告訴FileUpload組件處理時(shí)的編碼為項(xiàng)目編碼,在FileItem中,用getString(encoding),這項(xiàng)設(shè)置可以解決獲取的表單字段為亂碼的問(wèn)題,所以在每個(gè)FileItem實(shí)例后面都執(zhí)行一次getString(encoding),就告訴FileItem在取值時(shí)用的編碼是encoding所設(shè)置的編碼。如在ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件中的 FileItem item后面加上一句item.getString(encoding);在FileItem uplFile后面加上一句uplFile.getString(encoding); 接下來(lái)就是設(shè)置web.xml了,在web.xml中給上面講到的encoding傳值,如下
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
一切都OK了,真正的解決了上傳中文名圖片亂碼問(wèn)題。
在上面的第3步中,要用到Ant產(chǎn)生jar,這時(shí)要注意,把Tomcat安裝目錄下/server/lib里的catalina-ant.jar復(fù)制到項(xiàng)目的/WEB-INF/lib下。打開(kāi)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窗口中運(yùn)行Ant的dist,就會(huì)生成的新的FCKeditor-2.3.jar。絕對(duì)是真實(shí)的,共享出來(lái)與大家分享,少一個(gè)上傳其它文件的,如RAR的,有添加過(guò)這個(gè)功能的朋友也拿出來(lái)共享下吧
1.修改Web容器的字符編碼,如果Web容器用的是Tomcat,則修改conf/server.xml文件,在兩個(gè)Connector中添加“URIEncoding="utf-8"”,我這里用的是utf-8編碼,所以修改成utf-8,若項(xiàng)目是gb2312編碼,則設(shè)置為“URIEncoding="gb2312"”。
2.在“瀏覽服務(wù)器”頁(yè)面中上傳文件時(shí),打開(kāi)項(xiàng)目WebRoot中的文件/editor/filemanager/browser/default/frmupload.html,在head中加一個(gè)meta: ,看看該文件是不是utf-8格式的,若不是,則轉(zhuǎn)換成utf-8,若你用的不是utf-8則轉(zhuǎn)成你用的那種編碼,上面charset也設(shè)置成你用的編碼
3.修改ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件,我在這兩個(gè)文件中都是加了一個(gè)靜態(tài)變量encoding,private static String encoding;保存項(xiàng)目中的編碼, 若在web.xml文件中沒(méi)有給這個(gè)變量傳值的話,默認(rèn)是gb2312,如下代碼if(encoding.isEmpty()){encoding="gb2312";},在ConnectorServlet.java的doGet與doPost的開(kāi)頭部分加入request.setCharacterEncoding(encoding);將請(qǐng)求的字符集編碼設(shè)置成項(xiàng)目中的編碼,在ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件中的DiskFileUpload upload = new DiskFileUpload();后面加入upload.setHeaderEncoding(encoding);告訴FileUpload組件處理時(shí)的編碼為項(xiàng)目編碼,在FileItem中,用getString(encoding),這項(xiàng)設(shè)置可以解決獲取的表單字段為亂碼的問(wèn)題,所以在每個(gè)FileItem實(shí)例后面都執(zhí)行一次getString(encoding),就告訴FileItem在取值時(shí)用的編碼是encoding所設(shè)置的編碼。如在ConnectorServlet.java和SimpleUploaderServlet.java兩個(gè)文件中的 FileItem item后面加上一句item.getString(encoding);在FileItem uplFile后面加上一句uplFile.getString(encoding); 接下來(lái)就是設(shè)置web.xml了,在web.xml中給上面講到的encoding傳值,如下
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
一切都OK了,真正的解決了上傳中文名圖片亂碼問(wèn)題。
在上面的第3步中,要用到Ant產(chǎn)生jar,這時(shí)要注意,把Tomcat安裝目錄下/server/lib里的catalina-ant.jar復(fù)制到項(xiàng)目的/WEB-INF/lib下。打開(kāi)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窗口中運(yùn)行Ant的dist,就會(huì)生成的新的FCKeditor-2.3.jar。絕對(duì)是真實(shí)的,共享出來(lái)與大家分享,少一個(gè)上傳其它文件的,如RAR的,有添加過(guò)這個(gè)功能的朋友也拿出來(lái)共享下吧
您可能感興趣的文章:
- JS操作Fckeditor的一些常用方法(獲取、插入等)
- JS集成fckeditor及判斷內(nèi)容是否為空的方法
- js判斷FCKeditor內(nèi)容是否為空的兩種形式
- FCKeditorAPI 手冊(cè) js操作獲取等
- fckeditor常用Js,獲取fckeditor內(nèi)容,統(tǒng)計(jì)fckeditor字?jǐn)?shù),向fckeditor寫(xiě)入指定代碼
- Js FCKeditor的值獲取和修改的代碼小結(jié)
- javascript fckeditor編輯器取值與賦值實(shí)現(xiàn)代碼
- FCKEditor常用Js代碼,獲取FCK內(nèi)容,統(tǒng)計(jì)FCK字?jǐn)?shù),向FCK寫(xiě)入指定代碼
- FCKeditor提供了一個(gè)完整的JavaScript API
- javascript 獲取FCKeditor內(nèi)容
- extjs fckeditor集成代碼
- JSP 頁(yè)面中使用FCKeditor控件(js用法)
- 使用Js獲取、插入和更改FCKeditor編輯器里的內(nèi)容
相關(guān)文章
CKEditor中加入syntaxhighlighter代碼高亮插件
CKEditor是新一代的FCKeditor,是一個(gè)重新開(kāi)發(fā)的版本。CKEditor是全球最優(yōu)秀的網(wǎng)頁(yè)在線文字編輯器之一,因其驚人的性能與可擴(kuò)展性而廣泛的被運(yùn)用于各大網(wǎng)站2014-12-12
FckEditor 中文配置手冊(cè)詳細(xì)說(shuō)明
首先,FCKEDITOR的性能是非常好的,用戶只需很少的時(shí)間就可以載入FCKEDITOR所需文件.對(duì)于其他在線編輯器來(lái) 說(shuō),這幾乎是個(gè)很難解決的難題2009-05-05
百度ueditor組件上傳圖片后如何設(shè)置img里的alt屬性
百度ueditor組件,使用上傳圖片后,設(shè)置了一個(gè)alt屬性,其值是上傳圖片時(shí)的本地路徑,如果想更改的話可以參考下面的解決方法2014-09-09
CKEditor/FCKEditor 使用FCKeditor 2.6.5 快速使用教程(含插入圖片)
CKEditor 是著名的 HTML 編輯器,IBM、Oracle、Adobe 等都在用。CKEditor 創(chuàng)建于 2003 年,其前身為 FCKEditor,在 2009 年的時(shí)候把“F”去掉了,更名為 CKEditor。2010-03-03
CuteEditor 編輯器的字體樣式無(wú)法控制的解決方法
之前,一直沒(méi)有注意到這個(gè)問(wèn)題,編輯器里的字體樣式通常很大, 今天重新去看了官方的事例。2010-02-02
頁(yè)面上存在多個(gè)FckEditor編輯器的驗(yàn)證方法
FCKeditor是一個(gè)專(zhuān)門(mén)使用在網(wǎng)頁(yè)上屬于開(kāi)放源代碼的所見(jiàn)即所得文字編輯器。它志于輕量化,不需要太復(fù)雜的安裝步驟即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的編程語(yǔ)言相結(jié)合。2010-03-03
FCKEditor 表單提交時(shí)運(yùn)行的代碼
我們?cè)谑褂胒ckeditor進(jìn)行提交的時(shí)候,會(huì)運(yùn)行的代碼,方便我們?cè)黾庸δ艿取?/div> 2009-06-06
FCKEidtor 自動(dòng)統(tǒng)計(jì)輸入字符個(gè)數(shù)(IE)
由于項(xiàng)目需要,需要做字?jǐn)?shù)統(tǒng)計(jì),于是寫(xiě)了一個(gè)JS計(jì)算字符個(gè)數(shù),如果輸入的字符數(shù)大于100個(gè)字符,就彈出提示,點(diǎn)擊【確定】后,自動(dòng)截取為100個(gè)字符。2009-05-05最新評(píng)論

