Data g_field(200) type c .
DATA: g_len TYPE i,g_index TYPE i.
DATA: g_c(1) TYPE c.
FIELD-SYMBOLS: <fs_tmp> TYPE X.
FIELD-SYMBOLS: <fs_conv> TYPE C.
g_field = g_input.
*1. 去除非法字符
IF NOT g_field IS INITIAL .
TRANSLATE g_field TO UPPER CASE.
TRANSLATE g_field USING '#' .
TRANSLATE g_field USING '!' .
TRANSLATE g_field USING '&' .
CONDENSE g_field NO-GAPS.
DESCRIBE FIELD g_field LENGTH g_len IN CHARACTER MODE.
DO g_len TIMES .
g_index = sy-index - 1.
g_c = g_field+g_index(1).
ASSIGN g_c TO <fs_tmp> CASTING .
IF <fs_tmp> = '2100' OR <fs_tmp> = '6000'
OR <fs_tmp> = '0A00' OR <fs_tmp> = '0B00'
OR <fs_tmp> = '0C00' OR <fs_tmp> = '0D00'
OR <fs_tmp> = '0E00' OR <fs_tmp> = '0F00'
OR <fs_tmp> = '2300' OR <fs_tmp> = '0000'
OR <fs_tmp> = '0100' OR <fs_tmp> = '0200'
OR <fs_tmp> = '0300' OR <fs_tmp> = '0400'
OR <fs_tmp> = '0500' OR <fs_tmp> = '0600'
OR <fs_tmp> = '0700' OR <fs_tmp> = '0800'
OR <fs_tmp> = '0900' OR <fs_tmp> = '1000'
OR <fs_tmp> = '1100' OR <fs_tmp> = '1200'
OR <fs_tmp> = '1300' OR <fs_tmp> = '1400'
OR <fs_tmp> = '1500' OR <fs_tmp> = '1600'
OR <fs_tmp> = '1700' OR <fs_tmp> = '1800'
OR <fs_tmp> = '1900' OR <fs_tmp> = '8000'
OR <fs_tmp> = '8100' OR <fs_tmp> = '8200'
OR <fs_tmp> = '8300' OR <fs_tmp> = '8400'
OR <fs_tmp> = '8500' OR <fs_tmp> = '8600'
OR <fs_tmp> = '8700' OR <fs_tmp> = '8800'
OR <fs_tmp> = '8900' OR <fs_tmp> = '9000'
OR <fs_tmp> = '9100' OR <fs_tmp> = '9200'
OR <fs_tmp> = '9300' OR <fs_tmp> = '9400'
OR <fs_tmp> = '9500' OR <fs_tmp> = '9600'
OR <fs_tmp> = '9700' OR <fs_tmp> = '9800'
OR <fs_tmp> = '9900' OR <fs_tmp> = '0D0A' .
g_field+g_index(1) = '' . "置空
ENDIF .
ENDDO .
ENDIF.
CONDENSE g_field NO-GAPS. "压缩掉字符间的空格
g_result = g_field.
****************************************************************************************
LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.
CALL FUNCTION 'ZINVAILD_CHAR_CONVERSION_EXIT'
EXPORTING
G_INPUT = <SOURCE_FIELDS>-BWTAR
IMPORTING
G_RESULT = <SOURCE_FIELDS>-BWTAR .
ENDLOOP.