千家信息网

怎么将xstring中多余的00去掉

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"怎么将xstring中多余的00去掉",在日常操作中,相信很多人在怎么将xstring中多余的00去掉问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎
千家信息网最后更新 2025年11月07日怎么将xstring中多余的00去掉

这篇文章主要介绍"怎么将xstring中多余的00去掉",在日常操作中,相信很多人在怎么将xstring中多余的00去掉问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么将xstring中多余的00去掉"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

现在的sap系统都是unicode的,所以每一个字符都会用双字节表示。

如字符S,对应的ascii码为53,但在sap系统中debug时你看到的是5300.

如果我们一开始拿到的是53000A00这个xstring值,怎么才能将其转成530A呢。(直接替换0显然是不合适的)

可通过以下代码实现:

  DATA : str       TYPE string VALUE 'S',         xstr      TYPE xstring,         lt_binary TYPE TABLE OF solix.  DATA : lo_conv   TYPE REF TO cl_abap_conv_x2x_ce.  xstr = '53000A00'.  WRITE :/ 'unicode十六进制值:',xstr.** 二进制由4103转4110  TRY.      CALL METHOD cl_abap_conv_x2x_ce=>create        EXPORTING          in_encoding  = '4103' "uft-16le,双字节,存在字节浪费          out_encoding = '4110' "uft-8,自压缩格式,东亚字双字节,欧美单字节          input        = xstr        RECEIVING          conv         = lo_conv.    CATCH cx_parameter_invalid_type .    CATCH cx_parameter_invalid_range .    CATCH cx_sy_codepage_converter_init .  ENDTRY.  lo_conv->convert_c( ).  CLEAR xstr.  xstr = lo_conv->get_out_buffer( ).  WRITE : / 'uft-8十六进制值:',xstr.

执行结果:

unicode十六进制值: 53000A00

uft-8十六进制值: 530A

----------------------------------------------------------------------

ps:string转xstring,可使用函数SCMS_STRING_TO_XSTRING。

***字符串转hex字符串,encoding系统默认4110*  CALL FUNCTION 'SCMS_STRING_TO_XSTRING'*    EXPORTING*      text     = str*      encoding = '4103'*    IMPORTING*      buffer   = xstr*    EXCEPTIONS*      failed   = 1*      OTHERS   = 2.

到此,关于"怎么将xstring中多余的00去掉"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0