Web應用中的本地化

如果開發的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"));

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章