JBOSS 點滴

          豐豐的博客

          用GET方法時出現亂碼的問題。URL傳中文出現亂碼時:。

          最近遇到一個問題:用get方法傳遞中文有問題,用post沒有問題。
          問題簡單的描述是這樣的:
          <a href="userGroup.jsp?userGroupName=<%=userGroupName%>">aa</a>
          這里userGroupName是中文

          在userGroup.jsp頁面得到的userGroupName卻是亂碼。
          每個頁面也都有<%@ page language="java" pageEncoding="GBK" %>說明。

          后來上網找了一下才知道:pageEncoding這個只對post起作用。get方法提交時,大家可以從地址欄里看到提交的參數,這是因為get方法傳遞是作為報文頭提交的,而pageEncoding對報文頭是沒有作用的,所以仍然按照 iso8859-1編碼,才出現了剛才的亂碼問題。而post提交的是form表單的內容,pageEncoding指定了它的編碼,所以他會按照指定編碼傳遞。

          問題清楚了,下面就來解決它:

          由于tomcat的servlet實現中ServletRequest.setCharacterEncoding方法未對HTP報文頭的內容進行解碼,因此
          使用HTTP的GET方法提交的數據將不能正確的解碼.解決方案為修改其服務器的配置server.xml文件中對HTTP協議的
          Connector配置,加上URIEncoding="GBK"屬性,配置完成以后"可能"的內容為
          < Connector port="8080"
          maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          enableLookups="false" redirectPort="8443" acceptCount="100"
          debug="0" connectionTimeout="20000" 
          disableUploadTimeout="true" URIEncoding="GBK" /> 


          URL傳中文出現亂碼時:
          問題:
          如傳類似這樣的地址" index.jsp?ddurl="+"我們是";ddurl獲得的就是亂碼。
          解決辦法:這種傳值方式相當于get傳值,在傳值時對他加密:
          encodeURI(url);

          posted on 2013-10-17 11:47 半導體 閱讀(166) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 叙永县| 澄迈县| 安国市| 新田县| 普宁市| 青州市| 庄浪县| 海淀区| 文昌市| 厦门市| 黑龙江省| 青州市| 西盟| 台南市| 龙游县| 衡山县| 古蔺县| 台山市| 宣城市| 和龙市| 绥中县| 东乌| 大安市| 内丘县| 吉木萨尔县| 高尔夫| 邵武市| 阳原县| 阆中市| 成都市| 固安县| 四会市| 中卫市| 莱西市| 汉中市| 东光县| 闻喜县| 丽水市| 神农架林区| 康马县| 乌恰县|