我們在做一個JAVA的應用,不可避免地要處理中文。經(jīng)過艱苦的探索,目前有一些進展,找到了一些解決方法,但仍然面臨著無法解決的問題。在此作一整理,希望對大家有所幫助,同時請各位高手幫忙考慮我們的問題。
背景:
JDK 1.15
VCafe 2.0
JPadPro
SERVER:
NT IIS
Sybase System 10
JDBC: Jconnect
CLIENT:
Browser: Netscape 4.04 + Patch
PWin95 & Pwin98 Beta3
CLASS文件存放在 SERVER,由BROWSER 運行APPLET,APPLET只起調(diào)入FRAME類主程序的作用。界面包括Text field, Text Area,List, Choice 等。
一,取中文
用JDBC執(zhí)行SELECT語句從SERVER取數(shù)據(jù)(中文)后,將數(shù)據(jù)用APPEND方法加到TEXT AREA(TA),不能正確顯示。但加到LIST中時,則大部分漢字可正確顯示。
處理:將數(shù)據(jù)按“ISO-8859-1”格式轉(zhuǎn)為字節(jié)數(shù)組,再按系統(tǒng)缺省編碼格式(default character encoding)轉(zhuǎn)為STRING,即可在TA和LIST中正確顯示。
程序段如下:
dbstr2 = results.getString(1);
//*********************************************************************
// After read result from Database server, Convert the result string.
dbbyte1 = dbstr2.getBytes("iso-8859-1");
dbstr1 = new String(dbbyte1);
//*********************************************************************
二,寫中文到DB
處理方式與以上相逆,先將SQL語句按DEFAULT CHARACTER ENCODING轉(zhuǎn)為字節(jié)數(shù)組,再按ISO-8859-1轉(zhuǎn)為STRING,然后送執(zhí)行,則中文信息可正確寫入DB。
sqlstmt = tf_input.getText();
//*****************************************************************************
// Before send statement to Database server, Convert sql statement.
dbbyte1 = sqlstmt.getBytes();
sqlstmt = new String(dbbyte1,"iso-8859-1");
//*****************************************************************************
_stmt = _con.createStatement();
_stmt.executeUpdate(sqlstmt);
。。。。。。
背景:
JDK 1.15
VCafe 2.0
JPadPro
SERVER:
NT IIS
Sybase System 10
JDBC: Jconnect
CLIENT:
Browser: Netscape 4.04 + Patch
PWin95 & Pwin98 Beta3
CLASS文件存放在 SERVER,由BROWSER 運行APPLET,APPLET只起調(diào)入FRAME類主程序的作用。界面包括Text field, Text Area,List, Choice 等。
一,取中文
用JDBC執(zhí)行SELECT語句從SERVER取數(shù)據(jù)(中文)后,將數(shù)據(jù)用APPEND方法加到TEXT AREA(TA),不能正確顯示。但加到LIST中時,則大部分漢字可正確顯示。
處理:將數(shù)據(jù)按“ISO-8859-1”格式轉(zhuǎn)為字節(jié)數(shù)組,再按系統(tǒng)缺省編碼格式(default character encoding)轉(zhuǎn)為STRING,即可在TA和LIST中正確顯示。
程序段如下:
dbstr2 = results.getString(1);
//*********************************************************************
// After read result from Database server, Convert the result string.
dbbyte1 = dbstr2.getBytes("iso-8859-1");
dbstr1 = new String(dbbyte1);
//*********************************************************************
二,寫中文到DB
處理方式與以上相逆,先將SQL語句按DEFAULT CHARACTER ENCODING轉(zhuǎn)為字節(jié)數(shù)組,再按ISO-8859-1轉(zhuǎn)為STRING,然后送執(zhí)行,則中文信息可正確寫入DB。
sqlstmt = tf_input.getText();
//*****************************************************************************
// Before send statement to Database server, Convert sql statement.
dbbyte1 = sqlstmt.getBytes();
sqlstmt = new String(dbbyte1,"iso-8859-1");
//*****************************************************************************
_stmt = _con.createStatement();
_stmt.executeUpdate(sqlstmt);
。。。。。。