怎么将xstring中多余的00去掉

60次阅读
没有评论

共计 1322 个字符,预计需要花费 4 分钟才能阅读完成。

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

现在的 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 去掉”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计1322字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)