程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> java頁面中文亂碼的解決辦法

java頁面中文亂碼的解決辦法

編輯:JAVA編程入門知識
在頁面提交到tomcat亂碼 解決方法是在tomcat/conf/server.xml中進行配置
以tomcat6.0.32為例,需將以下代碼:
Xml代碼
代碼如下:

<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

改為:
Xml代碼
代碼如下:

<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
 
如果tomcat前端有Apache或是Nginx轉發,則還需將:
Xml代碼
代碼如下:

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

改為:
Xml代碼
代碼如下:

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"URIEncoding="UTF-8"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />

中文url亂碼在這裡介紹一種解決方法,可以在任何應用部署環境下通用。此方法分兩步:
1、在客戶端用escape(encodeURIComponent(fieldValue))方法編碼,例如:
代碼如下:

title=escape(encodeURIComponent(title)); //這是js裡的函數
url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;
 
2、在服務端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),進行解碼。

要在這兩個url地址中傳中文,必須加編碼,然後再解碼。
代碼如下:

編碼:encodeURI(encodeURI("包含中文的串"))
解碼:java.net.URLDecoder.decode("需要解碼的串","utf-8");
 
JSP頁面亂碼通常只要在頁面開始地方用下面代碼指定字符集編碼即可。如果還不行,那麼請用下面這句話來轉換
代碼如下:

str=new String(str.getBytes("ISO-8859-1"),"頁面編碼方式");
 
JAVA在網絡傳輸中使用的編碼是"ISO-8859-1",故在輸出時需要進行轉化,如:
代碼如下:

String str=new String(str.getBytes("開發環境編碼"),"ISO-8859-1");
 
經過網絡編碼後的中文,要正確顯示在頁面上必須要用類似於
代碼如下:

Stirng str=new String(str.getBytes("ISO-8859-1"),"開發環境編碼");
 
這樣的方式來解碼
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved