java 解決oracle US7ASCII編碼,mysql亂碼的問題;

1,今天同事讓幫忙寫一個查詢,但是Oracle得編碼格式是US7ASCII。我在網上查了一下,有的說需要修改註冊表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG 的值爲SIMPLIFIED CHINESE_CHINA.ZHS16GBK,或者修改一個系統變量NLS_LANG.這兩種方法我沒有試,因爲對於系統級別的方案我都不太喜歡用,最後終於找到了

new String(rs.getObject(fields[i]).toString().getBytes("iso-8859-1"),"GBK")

雖然費事了一些,需要每個字段都轉碼一遍,但是用起來順手多了。同樣的,檢索條件是中文的話,別忘了

new String(condition.getBytes("GBK"),"iso-8859-1")

2,只顧給同事忙活了,忘了自己的項目用的mysql,讀寫,插入都是亂碼,用了oracle的方法,不好用,網上查查,有些是jsp的,以前用過好用,可是這次是c/s的。用不上。有人說寫個過濾器,嫌麻煩一個,再者用到c/s不會用 :oops: 。願意費勁搜,不願意費勁寫。呵呵。最後終於找到了高人的專欄。我把我需要的內容拿了過來,他還有好多方法,一共四種。我只用修改連接url時的參數的方法。因爲怕影響到其他項目,ini文件就不改了,另外getBytes的方法試了不好用。 :twisted: 方法如下:
=========================================================

//裝載mysql-jdbc驅動

Class.forName("com.mysql.jdbc.Driver").newInstance();

//連接數據庫

Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?user=root&password=1&useUnicode=true&characterEncoding=utf-8" );

另外把這個大俠的收藏了。
參考資料:java與mysql亂碼的問題
http://blog.csdn.net/liuxueyongyu/archive/2008/01/05/2026788.aspx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章