Essbase 11g EAS 加載 SQL 數據源中文亂碼問題

關於怎麼配置SQL數據源,請參見

Essabse 11 EAS 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自動完成了編碼的轉換。






   
   
   

發佈了112 篇原創文章 · 獲贊 18 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章