關於怎麼配置SQL數據源,請參見
配置好之後,打開Date Prep Editor ,使用ODBC數據源預覽表數據,會發現中文亂碼的問題。
數據庫爲oracle 11g,編碼爲AL32UTF8
essbase應用程序爲非unicode程序
ESSLANG爲SimplifiedChinese_China.MS936@Binary
解決辦法爲在odbc.ini配置文件中對應數據源名稱中添加
IANAAppCodePage=113
即可。
除此之外,不使用ODBC連接,而是直接使用oci連接,則沒有這個亂碼的問題。
另外,如果應用程序爲unicode程序,則無須配置IANAAppCodePage也能正常顯示中文。
根本原因是因爲,當應用程序是unicode的時候,eas會直接默認sql 數據源的編碼是UTF8,這樣會和實際的編碼一致,所以中文能正常顯示。
但是應用程序不是unicode的時候,eas是使用ESSLANG的值來設定數據源的編碼,即SimplifiedChinese_China.MS936@Binary,然而數據源實際上是UTF8,
這樣就無法顯示中文了。
解決辦法就是在odbc驅動中添加IANAAppCodePage參數指定數據源的編碼爲113 (GBK),odbc會自動完成編碼轉換。
另外,爲撒使用oci就沒有這個問題呢?那是因爲oci自動完成了編碼的轉換。