点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
信息:此问题是我之前在此处回答的问题的后续问题: https://answers.sap.com/questions/12921343/simple-transformation-problems-with-encoding-conve.html
我发现它可以作为一个单独的问题来最有效地处理。
-------------------
使用片段,我实现了XML标记的动态生成,而无需松开左括号和右括号。 但是,如果一个这样的动态标记包含特殊符号,则它们似乎无法正确转换为输出字节字符串。
示例:
字段" DKTXT"是一个包含字符串"Ä&<>"的描述字段。
我想生成以下输出XML(忽略&后面的空格):
<?xml版本=" 1.0"编码=" utf-8"?> <包装>&Auml; &amp; &lt; &gt;
使用此ABAP代码进行转换:
数据:lv_xml_out TYPE xsdany。 呼叫转换zpd_st_nscale_xml_abap 源包= ms_xml_data-paket 结果XML lv_xml_out。 "使用rawstring类型的变量,我得到了UTF-8-XML
当我从lv_xml_out获取字节并通过在线十六进制<-> utf-8转换器( https://sites.google.com/site/nathanlexwww/tools/utf8-convert ),我得到以下输出:
格式化的XML(忽略&后面的空格)
<?xml版本=" 1.0"编码=" utf-8"?> <包装>Ä&amp; &lt; &gt;
原始字节:
3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D38223F3E0A3C50616B65743E0A20203C4D657461646174656E3E0A20202020C3C444B5458543EC3842026616D703B20C2B4E3E3C3D3D3C3D3D3D3C3D3D3E0结果:我们的解析输出XML的处理软件抱怨'Ä',并声称UTF-8文件是错误的。
为什么它翻译<,>而不是Ä? 我希望所有符号都可以翻译(即Ä-> @Auml;)。
又如何强制将所有特殊符号转换为HTML字符?
XML完全正常,抱怨的程序错误(或者文件未正确发送)。
Ä表示为C384,在UTF-8中表示Unicode字符U + 00C4是Ä。 在您的XML标头中,明确指出标头后的编码为UTF-8,因此XML在技术上是可以的。
在XML中,唯一需要转义的字符是<和&,如所解释的 在 XML标准中:
其他字符不需要由其字符实体引用表示。
为帮助人们回答,以下是并排显示 文本和UTF-8十六进制数:
如我们所见,Ä表示为C384,在UTF-8中表示Unicode字符U + 00C4,即Ä。
我想使用独立于SAP的工具来制作 确保我不会在SAP ABAP上下文中误解。 另外,我现在可以证明它不是与SAP相关的问题。
您好,Sandra,感谢您的澄清。 它使我对整个主题的理解更好了。 我们将XML文件存储在SAP文件系统中,发现该文件已保存在ANSI中,即"Ä"编码为E4,并且没有UTF-8文件头。
因此,转换是正确的,但存储设备当前会转换编码。
一周热门 更多>