EBS xml publisher中文乱码问题及解决办法
由于本机环境问题,导致做的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下面的字体
上一篇: 精妙的SQL语句