字符转换:Unicode到非unicode

2020-09-09 12:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)关于此主题的文章很多。 但是他们...

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

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


关于此主题的文章很多。 但是他们都没有向我说明它是如何工作的。

SAP中的数据以Unicode格式维护。 但是某些外部合作伙伴要求将数据转换为其他非Unicode字符集。

示例:

在SAP中,字符ß= C39F。

我们的界面合作伙伴希望使用字符集CP437。 在此字符集中,字符ß= E1的代码。

因此,我希望SAP Unicode字符C39F可以转换为字符E1。

如何完成?

关于杰克

 lo_xml = cl_ixml => create()。
 lo_encoding = lo_xml-> create_encoding(byte_order = 0 character_set ='CP437')。
 lo_document = lo_xml-> create_document()。
 lo_stream_factory = lo_xml-> create_stream_factory()。
 lo_stream = lo_stream_factory-> create_ostream_xstring(lv_data)。
 lo_stream-> set_encoding(lo_encoding)。
 lo_renderer = lo_xml-> create_renderer(ostream = lo_stream document = lo_document)。
 lo_element = lo_document-> create_element_ns(`data`)。
 lo_element-> set_attribute_ns(name ='attribute'value =`AAAAßßßß`)。
 lo_document-> append_child(lo_element)。
 lo_renderer-> render()。
 
3条回答
绿领巾童鞋
2020-09-09 12:54 .采纳回答

您的代码正确,但是在表TCP00A(标准名称和SAP代码页编号之间的关系)中没有完整描述一些代码页。 例如,它将与代码页" iso-8859-1"一起使用。

要完成TCP00A,您可能会在笔记 1901768-未为gb18030定义的代码页

去交易SCP。 输入代码页1107(CP437的SAP代码页)。

更改代码页。

添加属性H 0001 CP437和保存。

再次尝试您的程序。

编辑:Eszett字符是Unicode字符U + 00DF。 C39F是其UTF-8中的代码值。 当您指出无效或未知的编码(在TCP00A中)时,该编码将被忽略,因此UTF-8将与XSTRING变量一起使用。

一周热门 更多>