怎么将xstring中多余的00去掉
这篇文章主要介绍“怎么将xstring中多余的00去掉”,在日常操作中,相信很多人在怎么将xstring中多余的00去掉问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么将xstring中多余的00去掉”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
现在的sap系统都是unicode的,所以每一个字符都会用双字节表示。
如字符S,对应的ascii码为53,但在sap系统中debug时你看到的是5300.
如果我们一开始拿到的是53000A00这个xstring值,怎么才能将其转成530A呢。(直接替换0显然是不合适的)
可通过以下代码实现:
DATA:strTYPEstringVALUE'S',xstrTYPExstring,lt_binaryTYPETABLEOFsolix.DATA:lo_convTYPEREFTOcl_abap_conv_x2x_ce.xstr='53000A00'.WRITE:/'unicode十六进制值:',xstr.**二进制由4103转4110TRY.CALLMETHODcl_abap_conv_x2x_ce=>createEXPORTINGin_encoding='4103'"uft-16le,双字节,存在字节浪费out_encoding='4110'"uft-8,自压缩格式,东亚字双字节,欧美单字节input=xstrRECEIVINGconv=lo_conv.CATCHcx_parameter_invalid_type.CATCHcx_parameter_invalid_range.CATCHcx_sy_codepage_converter_init.ENDTRY.lo_conv->convert_c().CLEARxstr.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*CALLFUNCTION'SCMS_STRING_TO_XSTRING'*EXPORTING*text=str*encoding='4103'*IMPORTING*buffer=xstr*EXCEPTIONS*failed=1*OTHERS=2.
到此,关于“怎么将xstring中多余的00去掉”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。