1.方法一:GBK2UTF8

入参:GBKSTR TYPE STRING,

出参:UTF8 TYPE STRING.

 1   METHOD gbk2utf8.
 2     DATA:mimetype(128) TYPE c,
 3          xstr          TYPE xstring,
 4          codepage(4)   TYPE n,
 5          encoding(20)  TYPE c,
 6          convin        TYPE REF TO cl_abap_conv_in_ce.
 7     mimetype = `"text/html;charset='GBK'`.
 8 
 9     CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
10       EXPORTING
11         text     = gbkstr
12         mimetype = mimetype
13       IMPORTING
14         buffer   = xstr
15       EXCEPTIONS
16         failed   = 1
17         OTHERS   = 2.
18 
19     CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
20       EXPORTING
21         external_name = 'UTF-8'
22       IMPORTING
23         sap_codepage  = codepage
24       EXCEPTIONS
25         not_found     = 1
26         OTHERS        = 2.
27 
28     encoding = codepage.
29     convin = cl_abap_conv_in_ce=>create( encoding = encoding input = xstr ).
30     CALL METHOD convin->read( IMPORTING data = utf8str ).
31   ENDMETHOD.

2.方法二:STR2BASE64

入参:

STR  TYPE STRING,

CHARSET  TYPE STRING DEFAULT 'utf-8',

REPLACE )TYPE ABAP_BOOL.(可选)

出参:

BASE64STR TYPE STRING.

 1   METHOD str2base64.
 2     DATA:mimetype(128) TYPE c,
 3          xstr          TYPE xstring.
 4     mimetype = `"text/html;charset=` && charset && `"`.
 5 
 6     CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
 7       EXPORTING
 8         text     = str
 9         mimetype = mimetype
10       IMPORTING
11         buffer   = xstr
12       EXCEPTIONS
13         failed   = 1
14         OTHERS   = 2.
15 
16     CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'
17       EXPORTING
18         input  = xstr
19       IMPORTING
20         output = base64str.
21     IF replace = abap_true.
22       REPLACE ALL OCCURRENCES OF '+' IN base64str WITH '_'.
23     ENDIF.
24   ENDMETHOD.

3.方法三:BASE642STR

入参:

BASE64STR  TYPE STRING
CHARSET TYPE STRING
REPLACE TYPE ABAP_BOOL (可选)
出参:

STR  TYPE STRING

 1   METHOD base642str.
 2 *    参考 HR_KR_STRING_TO_XSTRING
 3 *         HR_KR_XSTRING_TO_STRING
 4     DATA:xstr         TYPE xstring,
 5          codepage(4)  TYPE n,
 6          encoding(20) TYPE c,
 7          convin       TYPE REF TO cl_abap_conv_in_ce.
 8 
 9     IF replace = abap_true.
10       REPLACE ALL OCCURRENCES OF '_' IN base64str WITH '+'.
11     ENDIF.
12 
13     CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
14       EXPORTING
15         input  = base64str
16       IMPORTING
17         output = xstr
18       EXCEPTIONS
19         failed = 1
20         OTHERS = 2.
21 
22     CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
23       EXPORTING
24         external_name = charset
25       IMPORTING
26         sap_codepage  = codepage
27       EXCEPTIONS
28         not_found     = 1
29         OTHERS        = 2.
30 
31     encoding = codepage.
32     convin = cl_abap_conv_in_ce=>create( encoding = encoding input = xstr ).
33     CALL METHOD convin->read( IMPORTING data = str ).
34   ENDMETHOD.

STRING和XSTRING互转: