共計 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 小編會繼續努力為大家帶來更多實用的文章!
正文完