欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

JDBC讀取Oracle的US7ASCII編碼中文亂碼及不同編

系統 6706 0

數據庫版本號:Oracle 10g

字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII

JDK:1.6.0_45

Oracle驅動:ojdbc14.jar

使用JDBC操作數據庫,獲取連接、運行SQL沒有問題。可是,查詢出來的結果中,全部漢字,均顯示為亂碼。

debug查看到在數據從數據庫中獲取出來的時候,就已經是亂碼,而使用PL/SQL等工具,均顯示正常。

不知是否Oracle的驅動,在進行漢字處理的時候,使用了系統默認的字符集?此時,本著死馬當活馬醫的理念,使用下對漢字的強制轉碼,ASCII碼是標準的ISO-8859-1的子集,或許使用這個ISO-8859-1能夠獲取到正常的漢字?于是,首先測試使用new String(fieldValue.getBytes("ISO-8859-1"));輸出依舊亂碼!想想應該是將這東西進行轉碼,而不不過依照這個格式獲取,于是調整為:new String(fieldValue.getBytes("ISO-8859-1"), "GBK"),測試下,搞定!不過,全部用到漢字的地方,均須要這么搞一下,有點麻煩。

據說,能夠使用第二種方式:改Oracle的字符集!

1、須要改動注冊表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG 的值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK

2、改動一個系統變量NLS_LANG.

以上兩種,第二種方式試過,能夠。第一種,未在現有環境下做過測試。

另外,將獲取到的漢字,寫入另外一個oracle 11g的數據庫中,發現:漢字不是依照一個漢字兩個字節來存放的;而是一個漢字3個字節!

查了一下,發現:字符集是AL32UTF8,這個字符集一般都默認中文是3個字節。于是,須要將目標數據庫表的字段長度進行擴充。實際對于漢字的問題,oralce以及較新的sqlserver,都支持nvarchar的格式,對于使用nvarchar的字段,不管漢字還是數字、字符、英文字母,均每一個字符占用1位。

假設不確定當前一個漢字占用幾個字符,能夠使用select length('汗') from dual;進行查看。

對于US7ASCII的字符集,眼下來看,新上的系統使用的較少了,而對于一些較老的遺留系統,可能會存在這樣的情況。詳細還需注意!

JDBC讀取Oracle的US7ASCII編碼中文亂碼及不同編碼下漢字占用字節的問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费中文字幕 | 中文字幕免费在线观看视频 | 一级毛片视频在线观看 | 五月婷婷丁香综合网 | 国产在线精彩视频 | 国产精品亚洲一区二区三区在线 | 无限资源动漫精彩日本 | 欧美日韩一区二区三区自拍 | 色www 永久免费网站 | 亚洲精品久久久久一区二区三 | 日本a级大片| 久久在线播放 | 小草激情视频 | 色之综合天天综合色天天棕色 | 亚洲综合色婷婷久久 | 欧美成人h版整片合集 | 亚洲精品综合一区二区三 | 免费中文字幕 | 国产一区久久 | 国产精品久久久久久婷婷天堂 | 亚洲影院一区 | 天天摸天天操天天干 | 色女生影院 | 青娱乐视觉盛宴在线 | 中文字幕一区二区三区四区 | 色播久久| 日本一区免费在线观看 | 一区二区三区日韩视频在线观看 | 成人精品一区二区三区 | 黄色日本视频 | 亚洲国产二区 | 亚洲熟妇毛茸茸 | 欧美理论视频 | 三上悠亚2022最新新作番号 | 国产99精品一区二区三区免费 | 成年人黄网站 | 波多野结衣中文字幕视频 | 日韩欧美一区二区三区不卡在线 | 日本高清视频wwww色 | 欧美日韩在线观看视频 | 99久久久无码国产精品 |