【转】ABAP BASE64编码与解码练习
生活随笔
收集整理的這篇文章主要介紹了
【转】ABAP BASE64编码与解码练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、功能描述
練習ABAP中的Base64編碼/解碼,以及字符編碼轉換
二、相關函數及類接口
1、SCMS_STRING_TO_XSTRING?????? String 轉 Xstring (按照指定字符編碼)
2、SCMS_BASE64_ENCODE_STR???? Base64 編碼
3、SCMS_BASE64_DECODE_STR???? Base64 解碼
4、SCP_CODEPAGE_BY_EXTERNAL_NAME??????? 獲得Codepage
5、cl_abap_conv_in_ce?????????????????????????Xstring轉String? (按照指定字符編碼)
三、練習代碼
*&---------------------------------------------------------------------* *& Report ZQBTEST_15 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*REPORT zqbtest_15.PARAMETERS: p_instr TYPE string,p_code TYPE c LENGTH 128 DEFAULT 'GBK'.DATA: instr TYPE string,xstr TYPE xstring,encode_str TYPE string,charset TYPE string,mimetype(128) TYPE c.instr = p_instr.WRITE : / ' Instr:' ,instr.charset = p_code.CONCATENATE '"text/html; charset=' p_code '"' INTO mimetype.CALL FUNCTION 'SCMS_STRING_TO_XSTRING'EXPORTINGtext = instrmimetype = mimetypeIMPORTINGbuffer = xstrEXCEPTIONSfailed = 1OTHERS = 2. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF.WRITE : / ' Xstr:' ,xstr.CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'EXPORTINGinput = xstrIMPORTINGoutput = encode_str.WRITE : / 'Encode:' ,encode_str.* 2018.08.18 若http用Get方式作為URL一部分需要將+替換成%2B DATA: out TYPE string . out = encode_str. REPLACE ALL OCCURRENCES OF '+' IN out WITH '%2B'.WRITE: / ' Out:', out. * 2018.08.18 endCLEAR xstr. CALL FUNCTION 'SCMS_BASE64_DECODE_STR'EXPORTINGinput = encode_str * unescape = 'X'IMPORTINGoutput = xstrEXCEPTIONSfailed = 1OTHERS = 2. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF.WRITE : / 'Decode:' ,xstr.DATA: codepage(4) TYPE n. DATA: encoding(20) TYPE c. DATA: convin TYPE REF TO cl_abap_conv_in_ce. DATA: str TYPE string.CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'EXPORTINGexternal_name = charsetIMPORTINGsap_codepage = codepageEXCEPTIONSnot_found = 1OTHERS = 2. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. encoding = codepage."創建解碼對象 convin = cl_abap_conv_in_ce=>create( encoding = encoding input = xstr ). CALL METHOD convin->read( IMPORTING data = str ). WRITE: / 'Encode:' ,str.四、執行結果
?
?
總結
以上是生活随笔為你收集整理的【转】ABAP BASE64编码与解码练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MM模块】 Goods Receipt
- 下一篇: 【MM模块】Taxes / Terms