tomcat下get方式提交請求亂碼解決辦法
阿新 • • 發佈:2019-02-17
最近在程式設計的時候,發現分別用get和post傳送中文資料,後者可以得到正確結果,
前者卻是亂碼。查了些資料,發現伺服器對post和get請求的資料的編碼處理是不一樣的
。現把tomcat下get和url直接傳送請求亂碼的解決辦法列舉如下:
方法1.
String name = new String((request.getParameter("name")).getBytes("ISO-8859-
1"),"GBK")
方法2.
1) 開啟tomcat的server.xml檔案,找到區塊,加入如下一行:
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" />
或者
將useBodyEncodingForURI引數設定為true,這個據說是可以,但我測試的時候沒有
成功,估計是哪一塊設定還有問題,好煩,算了,有一種方法能用就行了。
2)重啟tomcat,一切OK。
另外,如果用url傳送請求,請求的資料中含有%號,resin得到的是亂碼,tomcat得
到的是空值,我的解決辦法是把%改成%25