jboss get請求中文亂碼問題的解決[zt]
http://yekui.iteye.com/blog/1029778
有的時候 我們在通過後臺取前臺的資料的時候會出現亂碼
比如 String username = request.getParameter("username");時就會出現。
解決辦法:如果你想單獨解決這一個,那你就用
String username = new String(request.getParameter("username").getBytes("iso-8859-1"),"GBK")
如果想統一解決永無後顧之憂(前提是儘量都採用一種方式,否則以前有用過上面的方式的回出現亂碼):
如果用的伺服器是jboss: 找到server\default\deploy\jbossweb-tomcat55.sar\server.xml 開啟 找到
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
換成
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
ok 重新發布,重啟一下jboss 搞定。
如果用的是 tomcat伺服器:同上,找到 Tomcat 6.0\conf\server.xml
<Connector port="8989" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
換成
<Connector port="8989" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK" />
當然這種修改伺服器的方法雖然可以解決辦法,但是這並不是最好的辦法。如果能夠用修改程式的辦法來達到同樣的效果的話 建議還是用修改程式的辦法
<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<%request.setCharacterEncoding("gb2312");%>
servlet&jsp亂碼問題
SERVLET
1、頁面本身有中文的時候,一個要在寫PrintWriter out = resp.getWriter();之前加這句話:
resp.setContentType("text/html;charset=GBK");
2、解決POST方式提交表單的中文亂碼問題方法:
在獲得第一個引數之前加以下語句:req.setCharacterEncoding("GBK");
3、解決GET方式提交表單的中文亂碼問題方法:
修改conf目錄下的server.xml 在Connector標籤中(即修改8080埠的標籤)中加一句話
URIEncoding="GBK"
JSP
加入以下兩段程式碼則可解決大部分亂碼問題:
<%@ page contentType="text/html;charset=GBK"%>
<%request.setCharacterEncoding("GBK");%>
解決Servlet中的中文亂碼問題:
1、靜態中文資訊亂碼
response.setContentType("text/html; charset=gbk");
2、中文輸入亂碼
request.setCharacterEncoding("gbk");
String name =new String(request.getParamete("name").getBytes("iso-8859-1"));
servlet中輸出流的預設字元編碼是ISO-8859-1的
fileName=response.encodeURL(new String(fileName.getBytes(),"ISO8859_1"));//轉碼
執行後結果如下:
匿名 回答:2 人氣:3 解決時間:2010-04-22 22:28
滿意答案好評率:0% 樓上的說法是對的。。但是寫的不對
String name=request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
評價答案
您已經評價過!好:0 您已經評價過!不好:0 您已經評價過!原創:0 您已經評價過!非原創:0 廢人 回答採納率:36.7% 2010-04-22 21:06 滿意答案好評率:0% 首先你要弄清楚 如果是用url傳的話 url的傳遞是用編碼 ISO-8859-1 而你的編碼不是這個
所以你去到的值是亂碼,你要去轉碼就可以了
比如常用的方式
request.getParameter("name")=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
public static String toChi(String input) {
try {
//byte[] bytes = input.getBytes("ISO8859-1");
//return new String(bytes);
//下面兩行鍼對tomcat5。5 配置 encode為utf-8時候
byte[] bytes = input.getBytes("UTF-8");
return new String((new String(bytes)).getBytes("ISO-8859-1"), "gb2312");
}catch(Exception ex) {
}
return null;
}
相關文章
- 解決URL請求中的中文亂碼問題
- Postman 使用 Get 請求 URL 傳參中文亂碼的問題Postman
- 解決中文亂碼問題
- GET請求引數為中文時亂碼分析
- requests請求返回內容 中文亂碼問題
- 解決ajax get post方式提交中文引數亂碼問題
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- 解決MySQL中文亂碼問題MySql
- Servlet中request請求Get和Post方法以及亂碼解決Servlet
- DES加密中文亂碼問題的解決加密
- CentOS中文亂碼問題的解決方法CentOS
- URL請求不能解決中文請求的問題
- 解決plsql中中文亂碼問題SQL
- Sublime Text 3 中文亂碼問題的解決
- Solaris上中文請求亂碼
- java中解決request中文亂碼問題Java
- SpringMvc解決Restful中文亂碼問題SpringMVCREST
- python 中文亂碼問題解決方案Python
- 讀mysql中文亂碼問題解決方法MySql
- Jenkins Git 中文亂碼問題解決JenkinsGit
- URL地址中的中文亂碼問題的解決
- Mysql中文亂碼問題的最佳解決方法MySql
- 如何解決get()函式IE瀏覽器中文亂碼問題函式瀏覽器
- shell指令碼中文註釋亂碼問題(解決)指令碼
- 雲伺服器中文亂碼問題解決伺服器
- SqlServer資料庫中文亂碼問題解決SQLServer資料庫
- filezilla裡怎麼解決中文亂碼問題
- oracle 輸出中文亂碼問題解決方案Oracle
- iOS 解決列印 NSDictionary 時,中文亂碼問題iOS
- 解決Eclipse中文註釋部分亂碼的問題Eclipse
- [oracle]解決centos 7下oracle的中文亂碼問題OracleCentOS
- 如何解決PuTTY中文亂碼的問題
- 用XMLHTTP Post/Get HTML頁面時的中文亂碼問題之完全Script解決方案 (轉)XMLHTTPHTML
- phantomjs截圖中文亂碼問題解決JS
- 完美解決jspdf各種中文亂碼問題JS