我有個 servlet 處理含有中文的表單 , 用 new String(s.getBytes("ISO8859-1"), "GBK"); 轉碼 , 在 tomcat 5.5 中沒有問題 , 但是移植到 weblogic 8.1" name="description" />

tomcat向weblogic移植的中文亂碼問題

發表于:2007-06-22來源:作者:點擊數: 標簽:
MI LY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我有個 servlet 處理含有中文的表單 , 用 new String(s.getBytes("ISO8859-1"), "GBK"); 轉碼 , 在 tomcat 5.5 中沒有問題 , 但是移植到 weblogic 8.1

   

MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我有個servlet處理含有中文的表單,  new  String(s.getBytes("ISO8859-1"),  "GBK");轉碼,  tomcat5.5中沒有問題,但是移植到weblogic8.1,轉碼后還是亂碼,  哪位大俠知道怎么解決?

---------------------------------------------------------------

 

由于操作系統、瀏覽器、數據庫、JVM采用的字符集都不一樣,基于Weblogic  Server開發的應用經常出現中文顯示亂碼問題,其實在Weblogic  Server上運行的WEB應用有很多與字符集有關的設置.

 

以下我給出一些方法,樓主試試配置一下吧!

 

1.  JSP文件頭加入

<%@  page  contentType="text/html;  charset=GBK"  %>

 

指定該JSP采用的字符集。

 

2.在Weblogic.xml文件的中加入:

 

encoding

GBK

 

指定JSP文件中采用的字符集,在JSP文件中的<%@  page  contentType="text/html;  charset=GBK"  %>會覆蓋該設置

 

3.在Weblogic.xml文件的中加入

 

compilerSupportsEncoding

true

 

如果為TRUE,指定在編譯JSP文件時,采用在JSP文件中定義的

 

<%@  page  contentType="text/html;  charset=GBK"  %>中定義的encoding參數中定義的字符集進行編碼,如果為FALSE,則采用JVM中默認指定的字符集進行編碼。

 

4  Weblogic  Server需要把HTTP  request(GET  POST)中的數據從它的原始編碼轉化為Unicode,以便Java  servlet  API進行處理,為了做這種轉換,Weblogic  Server需要知道HPPT  request中的數據的編碼方式。這可以通過在Weblogic.xml中設置.

/

GBK

 

---------------------------------------------------------------

 

以上是對于一般情況的處理,接著還有2項是比較特殊的方法:

 

和你實際應用有關:

 

1.從ORACLE數據庫中檢索出來的中文顯示不正確時,在這種情況下,如果數據庫使用的是中文字符集,并使用的是Type  2  JDBC  Driver時,可加入Weblogic.codeset=GBK的屬性來解決這個問題。代碼如下:

 

java.util.Properties  props  =  new  java.util.Properties();

props.put("Weblogic.codeset",  "GBK");

props.put("user",  "scott");

props.put("password",  "tiger");

String  connectUrl  =  "jdbc:Weblogic:oracle";

Driver  myDriver  =  (Driver)

Class.forName("Weblogic.jdbc.oci.Driver").newInstance();

Connection  conn  =

myDriver.connect(connectUrl,  props);

 

2  如果是采用WTC調用Tuxedo中的服務,在JSP頁面中無法正確顯示中文,必須使安裝Tuxedo服務器上的NLS_LANG環境變量與數據庫中的字符集的設置一樣。如后臺Oracle數據庫中的字符集設置為SIMPLIFIED  CHINESE_CHINA.ZHS16GBK,那么Tuxedo應用服務器上的NLS_LANG環境變量應設置為:export  NLS_LANG="SIMPLIFIED  CHINESE_CHINA.ZHS16GBK"

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97