亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JDBC中的中文處理

2019-11-18 14:05:03
字體:
來源:轉載
供稿:網友

  我們在做一個java的應用,不可避免地要處理中文。經過
艱苦的探索,目前有一些進展,找到了一些解決方法,但仍然
面臨著無法解決的問題。在此作一整理,希望對大家有所幫助,
同時請各位高手幫忙考慮我們的問題。
Email: sailor@mailserv.stu.edu.cn
背景:
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只
起調入FRAME類主程序的作用。界面包括Text field, Text Area,
List, Choice 等。

一,取中文
用JDBC執行SELECT語句從SERVER取數據(中文)后,將數據
用APPEND方法加到TEXT AREA(TA),不能正確顯示。但加到
LIST中時,則大部分漢字可正確顯示。

處理:將數據按“ISO-8859-1”格式轉為字節數組,再按系統
缺省編碼格式(default character encoding)轉為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
轉為字節數組,再按ISO-8859-1轉為STRING,然后送執行,
則中文信息可正確寫入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);
。。。。。。

問題:
以上方法當本地客戶機上存在CLASSPATH指向JDK的CLASSES。Zip
時(稱為A情況),可正確運行。
但假如客戶機只有Browser,沒有JDK和CLASSPATH時
(稱為B情況),則漢字無法正確轉換。

我們的分析:
1,
經過測試,在A情況下,程序運行時系統的default character
encoding = "GBK" or "GB2312".
在B情況下,程序啟動時,Browser 的JAVA CONSOLE中出現
如下信息:
can´t find resource for
sun.awt.windows.awtLocalization_zh_CN
然后系統的
default characterencoding = "8859-1".

2,
假如在轉換字符串時不采用default character encoding,
而是直接采用“GBK”或“GB2312”,則在A情況下仍然可正常,
在B情況下,系統出現錯誤:UnsupportedEncodingException。

3,
在本地客戶機上,我把JDK的CLASSES。ZIP解壓后,放在另一個
目錄中,CLASSPATH只包含該目錄。然后逐步刪除目錄中的CLASS
文件,一邊運行測試程序,最后發現在一千多個CLASS文件中,
只有一個是不可缺少的,該文件是:
sun.io.CharToByteDoubleByte.class
我將該文件拷到SERVER端和其它的類放在一起,并在程序的開頭
IMPORT它,仍然在B情況下無法正常。

4,
在A情況下,假如在CLASSPTH中去掉
sun.io.CharToByteDoubleByte.class,則程序運行時,
測得default character encoding為“8859-1”,否則為
GBK 或GB2312。

5,
分析BROWSER程序NETSCAPE目錄下的文件
/program/java/classes/java40.jar, 發現其中沒有包括
sun.io.CharToByteDoubleByte.class,
不知這是需要升級,還是有其它方法可以解決? 盼望各位高手指導!Email: sailor@mailserv.stu.edu.cn

--
※ 來源:?BBS 水木清華站 bbs.net.tsinghua.edu.cn?[FROM: DHCP159_158.STU]
發信人: barebell (小心), 信區: Java
標 題: Re: ● ● JDBC中文處理:方法與問題
發信站: BBS 水木清華站 (Tue May 19 22:38:19 1998) WWW-POST

現在我們取得的一點小小進展,在轉換字符串時不采用default character
encoding,而是直接采用“GBK”或“GB2312”,在情況A和B底下,從DB取數據
都沒有問題,但是寫中文到DB也采用“GBK”或“GB2312”時,情況B仍是出錯的。

發信人: mah (chip), 信區: Java
標 題: 通過jdbc driver獲取數據庫中文信息揭密
發信站: BBS 水木清華站 (Tue Aug 11 20:42:16 1998) WWW-POST

當我們使用老外公司開發的jdbc第四類driver獲取數據庫中文信息時,常會出現亂碼現象
,如????D.
解決辦法1:
使用interface ResultSet的方法getBytes()得到一byte[],然后由此byte[]數組產生一
新的
String,可獲得正確的漢字,但此方法有一定的局限性,在某些driver上可以實現,如
weblogic公司
開發的fastforward產品。另此種方法不規范,根據sun jdbc的標準varchar和var推薦用
getString()
方法來獲取。
解決辦法2:
使用interface ResultSet的方法getString(),這時我們得到的String一定是亂碼,如何
解決,
String temp = result.getString (s);
if (temp != null) {
byte[] b = temp.getBytes ("8859_1");
temp = new String (b);
此時的temp一定是正確的中文,,,,,,此種方法我在sybase公司開發的jconnect4上
實驗成功,在fastforward
上也成功。

上一篇:JDBC之接口技術

下一篇:JDBC專題介紹

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频白浆免费视频| 国产精品久久久久久久久久久新郎| 国产色综合天天综合网| 久久精品国产久精国产思思| 亚洲午夜精品久久久久久久久久久久| 欧美电影院免费观看| 久久久久久香蕉网| 欧美日韩一区二区三区在线免费观看| 日韩美女主播视频| 欧美视频在线视频| 色哟哟网站入口亚洲精品| 国产精品视频一区二区高潮| 日韩精品免费在线播放| 欧美成人免费在线观看| 国产成人精品日本亚洲专区61| 亚洲新中文字幕| 日本欧美一二三区| 欧美精品成人91久久久久久久| 亚洲精品网站在线播放gif| 欧美日韩人人澡狠狠躁视频| 欧美日韩在线视频首页| 色偷偷亚洲男人天堂| 亚洲一区美女视频在线观看免费| 亚洲国产精品久久91精品| 国产精品免费一区豆花| 亚洲欧洲日产国产网站| 久久久久久国产三级电影| 久久久精品免费| 人妖精品videosex性欧美| 欧美国产日韩二区| 日韩最新av在线| 伊人久久久久久久久久久| 国产成人精品视| 91久久精品美女| 欧美老女人性生活| 久久精品国产欧美亚洲人人爽| 欧美精品在线极品| 2025国产精品视频| 亚洲欧美另类在线观看| 欧美日韩视频在线| 成人妇女淫片aaaa视频| 成人有码在线视频| 欧美在线性爱视频| 久久福利视频导航| 国产精品成人av性教育| 国产精品电影久久久久电影网| 亚洲黄色有码视频| 欧美性少妇18aaaa视频| 91精品国产色综合久久不卡98| 欧美一区三区三区高中清蜜桃| 国产一区深夜福利| 欧美精品videossex88| 精品爽片免费看久久| 亚洲色图25p| 伦伦影院午夜日韩欧美限制| 日韩视频在线一区| 亚洲国产另类久久精品| 国产美女扒开尿口久久久| www亚洲欧美| 亚洲色图综合网| 亚洲人成电影在线| 免费不卡欧美自拍视频| 亚洲精品videossex少妇| 国产精品亚发布| 日韩av在线影视| 亚洲精品电影在线观看| 久久免费少妇高潮久久精品99| 亚洲欧美色图片| 欧美激情性做爰免费视频| 亚洲国产精品人久久电影| 日韩在线视频观看| 日韩电影免费观看中文字幕| 欧美另类暴力丝袜| 黄色成人在线播放| 国产精品老牛影院在线观看| 国产精品主播视频| 日韩乱码在线视频| 国产色婷婷国产综合在线理论片a| 日本一区二区不卡| 久久夜色精品国产欧美乱| 欧美激情精品久久久久久黑人| 欧美国产精品人人做人人爱| 亚洲激情中文字幕| 国产综合香蕉五月婷在线| 91精品国产99久久久久久| 亚洲最大成人免费视频| 欧美日韩在线视频一区| 一区二区亚洲精品国产| 68精品国产免费久久久久久婷婷| www.美女亚洲精品| 亚洲精品在线视频| 国产精品视频导航| 欧美性生交xxxxx久久久| 久久久之久亚州精品露出| 欧美精品videosex性欧美| 91黑丝高跟在线| 富二代精品短视频| 久久久成人精品视频| 精品国产一区二区三区久久久狼| 日本免费久久高清视频| 欧美一级大胆视频| 亚洲视频在线观看免费| 久青草国产97香蕉在线视频| 日韩成人性视频| 欧美高清videos高潮hd| 亚洲aa中文字幕| 国产精品久久久久久久久久久久久久| 91久久国产婷婷一区二区| 亚洲日本欧美日韩高观看| 久久久久久国产三级电影| 成年无码av片在线| 亚洲自拍偷拍一区| 亚洲欧洲自拍偷拍| 日韩欧美大尺度| 欧美日韩免费区域视频在线观看| 国产在线日韩在线| 91av在线免费观看| 中文字幕精品av| 热re99久久精品国产66热| 美女精品久久久| 日韩av一区二区在线| 亚洲2020天天堂在线观看| 成人精品在线观看| 国产精品免费电影| 亚洲www视频| 国产婷婷成人久久av免费高清| 国产91在线播放| 国产不卡av在线免费观看| 久久久久久久久久久久av| 4444欧美成人kkkk| 国产成人+综合亚洲+天堂| 性欧美长视频免费观看不卡| 色悠久久久久综合先锋影音下载| 精品亚洲永久免费精品| 在线观看欧美视频| 亚洲一二在线观看| 亚洲视频自拍偷拍| 午夜精品一区二区三区在线| 国产精品久久久久久久一区探花| 亚洲精品一区av在线播放| 欧美国产日韩一区二区三区| 91成人福利在线| 尤物精品国产第一福利三区| 亚洲最大的免费| 精品亚洲男同gayvideo网站| 国产亚洲精品久久久久动| 国产精品日韩专区| 日韩av手机在线看| 日韩av电影手机在线观看| 国产精品xxxxx| 欧洲美女免费图片一区| 中文字幕日韩在线播放| 最近2019年日本中文免费字幕| 亚洲成人免费在线视频| 精品国产一区二区三区久久狼黑人| 人妖精品videosex性欧美| 久久久久久久久电影| 久久69精品久久久久久久电影好| 国产久一一精品| 黑人巨大精品欧美一区二区免费| 欧美成在线视频| 久久国产精品99国产精| 国产v综合v亚洲欧美久久| 在线观看日韩av|