Unicode/非Unicode-从文本中替换未知的BEL字符

2020-08-15 13:44发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在编写一些代码来替换某些文本...

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

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


我正在编写一些代码来替换某些文本中的未知字符。 我在sap论坛上看到有关使用cl_abap_char_utilities => charsize来确定abap系统是否为unicode的答案。

  • Unicode系统的值cl_abap_char_utilities => charsize大于1,对吗? 因此我可以使用cl_abap_char_utilities => charsize> 1作为我假设的指标。
  • 非Unicode系统cl_abap_char_utilities =>具有相同逻辑的字符大小等于1吗?

这是一段代码。 这可以用Unicode设置为yes且charsize为2的unicode替换系统中的未知BEL字符07。我只是将xstring转换回字符串。 我不确定它在非unicode系统中的工作方式还是ubel_hex和uspace_hex甚至是正确的值。 任何见识将不胜感激,我只是对cl_abap_char_utilities => charsize意见不一。

数据:
           bel_hex(1)TYPE x VALUE'07'," bel
           space_hex(1)TYPE x VALUE'20'," space
           ubel_hex(2)类型x值'0007',
           uspace_hex(2)类型x值'0020',
           temp_string TYPE字符串,
           lgtxt_xstring TYPE xstring,
           将TYPE REF转换为cl_abap_conv_in_ce。

         temp_string ='一些带有无效BEL字符的字符串'

         通话功能'SCMS_STRING_TO_XSTRING'
           出口
             文字= temp_string
           输入
             缓冲区= lgtxt_xstring。

         如果cl_abap_char_utilities => charsize> 1。
           在字节模式下用space_hex替换lgtxt_xstring中bel_hex的所有出现。
         其他。
           用字节模式中的uspace_hex替换lgtxt_xstring中的ubel_hex的所有出现。
         ENDIF。