請教一個已有系統資料移置帶來的中文問題

hecc發表於2003-07-23
請教一個已有系統資料移置帶來的中文問題

我們原來有一套在Linux 7.2, resin, apache, mysql 下的一個j2ee應用,它們的語言編碼都是iso8859-1,對中文沒有作任何的處理,中文進出資料庫,顯示都沒有問題。但是現在客戶要求要把資料庫移置到AIX下的Oracle 9i上,並且Oracle 9i資料庫字符集要求為gbk或gb2312(天知道客戶為什麼會有這樣的要求),現在的現狀是原來的應用部是我寫的,如果透過改程式在中文進出資料庫的時候做轉碼處理,那工作量不可估計,並且我們也沒有原始碼。所以修改程式應該是不可行的。

可行的方法一: EncodingFilter
好像EncodingFilter只能對進入資料庫的中文做轉換處理,中文出來顯示
不能處理吧? 我對EncodingFilter還不是很熟悉,不知道能不能對程式不做任何的修改就可以達到目的(請高手回答這個問題)。並且現在系統的Resin版本很低,連<%@ page contentType="text/html;charset=GB2312"%>都不支援,報下面的錯誤:
Note: sun.tools.javac.Main has been deprecated.
/HeccTest2.jsp:32: Method setCharacterEncoding(java.lang.String) not found in interface javax.servlet.http.HttpServletRequest.
request.setCharacterEncoding("GB2312");
^
1 error, 1 warning

系統的resin和cocoon是配置在一起的,並且系統一直在執行,不能停,所以升級resin的方法也不行。

方法二:修改oracle的jdbc driver,正準備測試,也不知道行不行。


題外話:我開發時對中文的處理都是,安裝Linux是選中gb2312中文,編譯Mysql時設定charset=gb2312,安裝resin,apache,php,然後對中文就不用做任何處理了

相關文章