您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么將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去掉”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。