EBS XMLP报表浏览器输出XML乱码的解决方法

EBS报表输出XML文件的时候,出现如下图1所示的问题,无法显示XML页。

无法显示XML页

图1:无法显示XML页

对于上图1显示的这个问题,我是通过设置“首选项”中的“客户机字符编码”来解决的,如下图2所示:

设置客户机字符编码为UTF-8

图2:设置客户机字符编码为UTF-8

在网上还搜到了更多的解决方案,我还没试过,先转载过来,内容如下:

问题描述:在使用XMLP做报表的过程中,经常会遇到乱码的情况。

导致乱码的原因有两种:字符集的问题和字体定义的问题。字符集引起的乱码:一般乱码成不规则的。字体定义引起的乱码:一般乱码是规则的,一般为(反?)。

(一)字符集的问题

解决方法:

1、在PL/SQL中输出XML时,头信息的编码为:

output('<?xml version="1.0" encoding="' ||
           fnd_profile.value('ICX_CLIENT_IANA_ENCODING') || '"?>');

2、修改EBS系统首选项:客户机字符编码修改为:Unicode(UTF-8),修改首选项会影响到配置文件FND:NATIVE CLIENT ENCODING的值。

3、直接修改FND:NATIVE CLIENT ENCODING的值,使客户机的编码与服务器保持一致。

4、注意事项:Oracle的字符集命名(非国际标准)和XML规范(IANA国际标准)不一致,我们还不能直接依据Oracle的字符集来设置XML字符集,需要根据下表映射设置(也可以通过utl_gdk.charset_map来获得映射关系)。抱怨下,这个小伙伴写的时候不认真,映射表没附上,我也无可奈何了。

(二)字体定义的问题

解决步骤:

1、查看$OA_JRE_TOP/jre/lib/fonts目录下是否包含类似ALBAN*.ttf 的文件。

2、如果没有,从EBS的$FND_TOP/resource 下拷贝一份,使用命令:

cp $FND_TOP/resource/ALBAN*.ttf  $OA_JRE_TOP/lib/fonts

3、重启应用。问题就可以解决。

4、原理:默认情况下,XMLP不支持中文,原因仅仅是缺少字体。因为XMLP采用Java编写,理论上Java支持任何语种。EBS自带了中文字体,但没有安装到XMLP目录。因此要做个拷贝。

5、XMLP默认输出格式为HTML的时候,打开时所使用的字体是$OA_JRE_TOP下的。使用EXCEL和PDF时使用的是$FND_TOP下面的字体。

本文标题:EBS XMLP报表浏览器输出XML乱码的解决方法

本文链接:http://yedward.net/?id=202

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章