呼叫转换-cx_xslt_runtime_error-不支持字符参考字符范围

2020-09-23 07:02发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我对XSL转换和特殊的带掩码字符有疑问。

我有一个XML。 XML文档包含被屏蔽的字符:

128073(这是一个符号-白色右指反手-也是Unicode 6.0的一部分)

当我调用命令CALL TRANSFORMATION时,我将收到以下消息:cx_xslt_runtime_error:"字符引用'128073'计算为不支持的字符范围"。

有人知道我该怎么做吗? 是,在应用程序服务器上有问题吗?

数据:
ol_ixml类型引用为if_ixml,
ol_stream_factory类型引用为if_ixml_stream_factory,
ol_encoding类型引用为if_ixml_encoding,
ol_srcstream类型引用为if_ixml_istream,
ol_resstream类型引用为if_ixml_istream,
vl_xdata类型为xstring。
 .... 
 ol_ixml = cl_ixml => create()。
ol_stream_factory = ol_ixml-> create_stream_factory()。
 ol_encoding = ol_ixml-> create_encoding(characterset ='utf-8'
byte_order = 0)。
ol_srcstream = ol_stream_factory-> create_istream_xstring(string = vl_xdata)
ol_resstream = ol_stream_factory->(create_encode = vl_data_out)。
ol_resstream-> set_encoding(编码= ol_encoding)。
试试。
调用转换zrmx3_convert_encoding
源xml ol_srcstream
结果xml ol_resstream。
将cx_xslt_runtime_error捕获到ol_xslt中。
....

最好的问候
Uwe

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我对XSL转换和特殊的带掩码字符有疑问。

我有一个XML。 XML文档包含被屏蔽的字符:

128073(这是一个符号-白色右指反手-也是Unicode 6.0的一部分)

当我调用命令CALL TRANSFORMATION时,我将收到以下消息:cx_xslt_runtime_error:"字符引用'128073'计算为不支持的字符范围"。

有人知道我该怎么做吗? 是,在应用程序服务器上有问题吗?

数据:
ol_ixml类型引用为if_ixml,
ol_stream_factory类型引用为if_ixml_stream_factory,
ol_encoding类型引用为if_ixml_encoding,
ol_srcstream类型引用为if_ixml_istream,
ol_resstream类型引用为if_ixml_istream,
vl_xdata类型为xstring。
 .... 
 ol_ixml = cl_ixml => create()。
ol_stream_factory = ol_ixml-> create_stream_factory()。
 ol_encoding = ol_ixml-> create_encoding(characterset ='utf-8'
byte_order = 0)。
ol_srcstream = ol_stream_factory-> create_istream_xstring(string = vl_xdata)
ol_resstream = ol_stream_factory->(create_encode = vl_data_out)。
ol_resstream-> set_encoding(编码= ol_encoding)。
试试。
调用转换zrmx3_convert_encoding
源xml ol_srcstream
结果xml ol_resstream。
将cx_xslt_runtime_error捕获到ol_xslt中。
....

最好的问候
Uwe

付费偷看设置
发送
2条回答
悻福寶寶
1楼 · 2020-09-23 07:10.采纳回答

EDIT:128073对应于字符U + F449。 它是辅助私人使用区域-A(U + F0000–U + FFFFD)的一部分。 它没有标准含义。

实际上,您是在谈论字符U + 1F449( https ://www.fileformat.info/info/unicode/char/1f449/index.htm )。 不幸的是,SAP系统是Unicode UCS-2,所有字符占用2个字节,因此,如果将U + FFFF以上的所有字符存储在STRING变量中,则会导致错误的解释。

也许您可以将输入流以XSTRING变量的形式允许(或转换)为UTF-8,然后重试...

小c菟菟
2楼-- · 2020-09-23 07:25

谢谢。 您可以通过代码页转换或通过将无效字符替换为#来删除这些字符。

一周热门 更多>