欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

EBS xml publisher中文乱码问题及解决办法

程序员文章站 2022-07-01 19:17:52
由于本机环境问题,导致做的xml publisher报表跑不出来,无法显示 xml 页。 使用 xsl 样式表无法查看 xml 输入。请更正错误然后单击 刷新按钮,或...

由于本机环境问题,导致做的xml publisher报表跑不出来,无法显示 xml 页。

使用 xsl 样式表无法查看 xml 输入。请更正错误然后单击 刷新按钮,或以后重试。

xml 文档只能有一个顶层元素。处理资源 'http://***.***.com:8001/oa_cgi/fndwrr.exe?temp_id=2326230111' 时出错。第 12 行,位置: 2
<item_list>
-^

但是在同事的电脑上可以跑出来。

后面设置了$oa_jre_top/jre/lib/fonts的字体,我本机jre有两个,其中1.6.0_07的没有类似alban*.ttf 的文件。添加以后解决。

转:

问题描述:在使用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/jre/lib/fonts  

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

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

  5. xmlp默认输出格式为html的时候,打开时所使用的字体是$oa_jre_top下的。使用excel和pdf时使用的是$fnd_top下面的字体