2011年9月30日 星期五

Informix Big5 Extensions

最近搞informix Bgi5 的問題弄很久了,在自造字區的解法暫時還沒有個結論出來,但綜合先前努力的過程先彙整一點資訊

  • JDBC Driver Verison


目前測試過有使用 2.2版,以及3.5版,而3.5版的對於非合法字元集的字碼會直接丟出 encoding or code set not supported,基於這樣的


理由,於是必須在連線字串中補上 IFX_USE_STRENC= true; 的設定,只是這些無法顯示的字元內容就會直接被轉成問號了。


若使用舊版的v2.2則不會有這個狀況,畫面上只會顯示方框,表示無法呈現該字體內容。


--> 所以,我大膽假設,現在存在DB中的自造字使用的Hex Code,說不定並非合法的Big5自造字,可是卻又不能直接resultSet.getBytes(column),這樣呼叫會導致系統直接拋出 encoding or code set not supported真的很詭異!!




  • JDBC Connection Properties


綜合整理以下的各種參數



NEWLOCALE=<JDK locale>,<Ifx locale>:<JDK locale>,<Ifx locale>...
NEWCODESET=<JDK encoding>,<Ifx codeset name>,
<Ifx codeset number>:<JDK encoding>,<Ifx codeset name>,<Ifx codeset number>...

NEWLOCALE=zh_TW,zh_tw

NEWCODESET=MS950,big5,57352

DB_LOCALE=zh_tw.big5

SERVER_LOCALE=zh_tw.big5

CLIENT_LOCALE=zh_tw.big5


  • 相關連結資訊


全字庫Big5解說


http://www.cns11643.gov.tw/AIDB/encodings.do#encode4


informix developer's guide


http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.jfoun.doc/jfoun42.htm


informix  supported code set


http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.jdbc_pg.doc/jdbc187.htm


jdk supported locale


http://download.oracle.com/javase/1.5.0/docs/guide/intl/locale.doc.html


jdbc driver support APIs


http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.apdv.java.doc%2Fsrc%2Ftpc%2Fimjcc_rjvjdapi.html


java encoding and charset


http://www.websina.com/bugzero/kb/java-encoding-charset.html

1 則留言:

surrentio 提到...

感謝您的分享,竟然幫我解決了java讀取informix造字的問題,我找了好幾天哪,感激不盡^^