tomcat5中文問題解決之道(原創)
在tomcat5中發現了以前處理tomcat4的方法不能適用於處理直接透過url提交的請求,上網找資料終於發現了最完美的解決辦法,不用每個地方都轉換了,而且無論get,和post都正常。寫了個文件,貼出來希望跟我有同樣問題的人不再像我一樣痛苦一次:-)
上傳檔案有問題,只好直接貼了,難看點:-)
-------------------
Tomcat 5中文問題
author:kiss__sky@163.com
-------------------
問題描述:
1 表單提交的資料,用request.getParameter(“xxx”)返回的字串為亂碼或者??
2 直接透過url如http://localhost/a.jsp?name=中國,這樣的get請求在服務端用request. getParameter(“name”)時返回的是亂碼;按tomcat4的做法設定Filter也沒有用或者用request.setCharacterEncoding("GBK");也不管用
原因:
1 tomcat的j2ee實現對錶單提交即post方式提示時處理引數採用預設的iso-8859-1來處理
2 tomcat對get方式提交的請求對query-string 處理時採用了和post方法不一樣的處理方式。(與tomcat4不一樣,所以設定setCharacterEncoding(“gbk”))不起作用。
解決辦法:
首先所有的jsp檔案都加上:
<%@ page contentType="text/html;charset=gb2312"%>
1 實現一個Filter.設定處理字符集為GBK。(在tomcat的webapps/servlet-examples目錄有一個完整的例子。請參考web.xml和SetCharacterEncodingFilter的配置。)
1)只要把%TOMCAT安裝目錄%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class檔案拷到你的webapp目錄/filters下,如果沒有filters目錄,就建立一個。
2)在你的web.xml里加入如下幾行:
3)完成.
2 get方式的解決辦法
1) 開啟tomcat的server.xml檔案,找到<connector>區塊,加入如下一行:
URIEncoding=”GBK”
完整的應如下:
2)重啟tomcat,一切OK。
執行如下jsp頁頁測試是否成功
測試結果如果你輸入文字框或者點超鏈都會顯示:你提交了”中國”,說明成功!!!!!
特別感謝下面這篇帖子,幫我解決了中文問題.最後祝大家好運!!!
參考網址:
http://www.javaworld.com.tw/jute/post/view?bid=9&id=44042&sty=1&tpg=1&age=0
上傳檔案有問題,只好直接貼了,難看點:-)
-------------------
Tomcat 5中文問題
author:kiss__sky@163.com
-------------------
問題描述:
1 表單提交的資料,用request.getParameter(“xxx”)返回的字串為亂碼或者??
2 直接透過url如http://localhost/a.jsp?name=中國,這樣的get請求在服務端用request. getParameter(“name”)時返回的是亂碼;按tomcat4的做法設定Filter也沒有用或者用request.setCharacterEncoding("GBK");也不管用
原因:
1 tomcat的j2ee實現對錶單提交即post方式提示時處理引數採用預設的iso-8859-1來處理
2 tomcat對get方式提交的請求對query-string 處理時採用了和post方法不一樣的處理方式。(與tomcat4不一樣,所以設定setCharacterEncoding(“gbk”))不起作用。
解決辦法:
首先所有的jsp檔案都加上:
<%@ page contentType="text/html;charset=gb2312"%>
1 實現一個Filter.設定處理字符集為GBK。(在tomcat的webapps/servlet-examples目錄有一個完整的例子。請參考web.xml和SetCharacterEncodingFilter的配置。)
1)只要把%TOMCAT安裝目錄%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class檔案拷到你的webapp目錄/filters下,如果沒有filters目錄,就建立一個。
2)在你的web.xml里加入如下幾行:
<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <p class="indent"> |
3)完成.
2 get方式的解決辦法
1) 開啟tomcat的server.xml檔案,找到<connector>區塊,加入如下一行:
URIEncoding=”GBK”
完整的應如下:
<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" /> <p class="indent"> |
2)重啟tomcat,一切OK。
執行如下jsp頁頁測試是否成功
<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*"%> <% String q=request.getParameter("q"); q = q == null? "沒有值" : q; %> <HTML> <HEAD><TITLE>新聞列表顯示</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <META http-equiv=pragma content=no-cache> <body> 你提交了: <%=q%> <br> <form action="tcnchar.jsp" method="post"> 輸入中文:<input type="text" name="q"><input type="submit" value="確定"> <br> <a href="tcnchar.jsp?q=中國">透過get方式提交</a> </form> </BODY></HTML> <p class="indent"> |
測試結果如果你輸入文字框或者點超鏈都會顯示:你提交了”中國”,說明成功!!!!!
特別感謝下面這篇帖子,幫我解決了中文問題.最後祝大家好運!!!
參考網址:
http://www.javaworld.com.tw/jute/post/view?bid=9&id=44042&sty=1&tpg=1&age=0
相關文章
- [原創]Gerrit中文亂碼問題解決方案分享
- 在jbuilder2005下怎麼解決tomcat5的中文問題UITomcat
- 跨域問題,解決之道跨域
- 看了benq的中文終極解決之道最後一點問題ENQ
- 位運算解決多標籤問題【原創】
- 怎麼解決內容的原創性問題
- RocetMQ搭建攻略和問題解決之道MQ
- ListView Item 選擇問題解決之道View
- 【原創】視訊+文字:詳解VBA解決數獨問題
- MySQL 中文 like 問題解決MySql
- jive中文問題解決方案
- 解決中文亂碼問題
- 【原創】autotrace中statistics為0的問題的解決
- 【原創】ORA-02085問題的解決
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- 解決localdb中文智慧的問題
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- 解決MySQL中文亂碼問題MySql
- Tomcat下中文問題解決Tomcat
- 暫時解決的中文問題
- VC下TabCtrl的控制問題解決辦法( 原創 ) (轉)
- 解決plsql中中文亂碼問題SQL
- springmvc 解決中文亂碼問題SpringMVC
- js解決url中文亂碼問題JS
- 資料倉儲的效能問題及解決之道
- 【原創】RedHat Linux啟動時間過長的問題解決RedhatLinux
- java連線mysql中文亂碼解決之道JavaMySql
- java中解決request中文亂碼問題Java
- SpringMvc解決Restful中文亂碼問題SpringMVCREST
- python 中文亂碼問題解決方案Python
- 讀mysql中文亂碼問題解決方法MySql
- jive中MySQL中文問題解決一法MySql
- 解決cookies儲存中文報錯問題Cookie
- DES加密中文亂碼問題的解決加密
- Jenkins Git 中文亂碼問題解決JenkinsGit
- CentOS中文亂碼問題的解決方法CentOS