1. 程式人生 > >javaWeb專案(Spring、Struts2框架)gbk轉gb180整體方案(主要用於解決生僻字)

javaWeb專案(Spring、Struts2框架)gbk轉gb180整體方案(主要用於解決生僻字)

一、需要需改點:
    1:jsp中指定瀏覽器編碼格式,修改後:<%@ page contentType="text/html; charset=GB18030"%> 
    2:過濾器:
        struts.xml  中  i18n編碼格式修改為: gb18030
        web.xml 中  spring編碼格式過濾器,編碼格式修改為:gb18030
    3:介面響應資料時,如果源java程式碼中是將字串轉為“gbk”資料,現在需要改為gb18030。   例如:byte[] byteMessages = responseMessage.getBytes("GBK");
    4:介面響應資料時,如果源java程式碼中是將響應編碼型別設定為“gbk”,現需要改為gb18030。  例如:response.setContentType("text/html;charset=GBK");
    5:informix 資料來源 連線url中要有 gb18030。如:jdbc.url=*******NEWCODESET=gb18030,8859-1,819,Big5;IFX_USE_STRENC=true
    Oracle 資料庫需要用 指令碼 修改該庫的編碼格式,(可能還需要修改客戶端編碼格式)
    6、IE在向服務端傳送請求時,如果採用在url中拼接引數,無論get請求還是post請求及Ajax的get請求或post請求 都不能攜帶生僻字, 因為IE會自動把 URL中的引數預設轉為 gbk 格式,生僻字在這個時候會變為 ? 號。   (使用谷歌瀏覽器可以解決問題,  谷歌瀏覽器會把 url引數轉為gb18030  有可能是當前頁面是gb18030。
   8、  Ajax的post請求,會把post中的資料中轉為 utf-8 再發送給伺服器, struts2 框架預設以 urf-8 接收該資料, 但是 struts2 預設攔截器,都以 gb18030 格式 接收資料,需要重新Struts2編碼過濾器,通過程式碼判斷Ajax請求,再將utf-8資料轉為gb18030.
   9、 使用Weblogic服務, domain中的《setDomainEnv.sh》檔案將該domian編碼格式修改為:
        LC_ALL="zh_CN.gb18030"
        export LC_ALL