如果開發的Web應用只供中文用戶使用的話,就無須考慮國際化問題。但實踐證明,在Web應用的中文問題上經常碰到亂碼的晴空。
下面列舉了Web應用開發過程中常見的幾個中文問題及其解決辦法。
1、解決HTML頁面中的中文問題
爲了使HTMl頁面很好的支持中文,就必須在每個HTMl頁面的頭部增加如下代碼:
<HEAD>
...
<META http-equiv=Content-Type content="text/html;charset=gb2312">
...
</HEAD>
2、解決JSP頁面中的中文問題
爲了使JSP頁面很好的支持中文,就必須在每個JSP頁面的頭部增加如下代碼
<%@ page contentType="text/html;charset=gb2312" language="java"%>
3、解決Servlet響應結果的中文問題response.setChracterEncoding("gb2312");
4、解決頁面數據傳輸的中文問題爲了使中文數據在各頁面(組件)之間正常傳遞,最佳的誒辦法就是採用編碼過濾器來解決。在WEB.xml中配置一個編碼過濾器,內容如下:
<filter>
<filter-name>encondingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncoding</filter-class><init-param>
<param>encoding</param><param>gb2312</param>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern></filter-mapping>
5、解決HTTP(get)請求中的中文問題
String parameter = request.getParameter("parameter");
if(parameter!=null)
parameter=new String(parametr.getBytes("ISO-8859-1"),"gb2312");如果我們在應用中請求參數很多的情況下,也可以通過Tomcat的Server.xml文件來解決。<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"; useBodyEncodingForURI="true">
6、解決MySOL數據庫中文問題
jdbc.mysql://localhost/test?user=root&password&useUnicode=true&characterEncoding=gb2312
7、今天在做將由word生成的html文件轉成字符串時出現了編碼問題,讀取的時候使用BufferedRead輸入流進行按行讀取的,然後再轉成字符時使用了字節編碼。覽器以HTTP頭中指定的方式解碼字符,這時無論是用GBK還是UTF-8解碼,顯示的都是亂碼。 解決這個亂碼問題方法是使用InputStreamReader來轉換字符編碼,如:
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\test.txt"),"utf-8"));
Web應用中的本地化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.