Essbase 11g EAS 加载 SQL 数据源中文乱码问题

关于怎么配置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自动完成了编码的转换。


经验分享 程序员 微信小程序 职场和发展