ABAP 判断字符串中的繁体中文/简体中文
GB2312是简体中文的字符集,如果将含有繁体字的字符串转换成GB2312就会跳异常
DATA:
codepage(4) TYPE n,
encoding(20) TYPE c,
li_len TYPE i,
str TYPE string VALUE '中文測試123asdfsadf/-.',
conout TYPE REF TO cl_abap_conv_out_ce.
CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
EXPORTING
external_name = 'GB2312'
IMPORTING
sap_codepage = codepage
EXCEPTIONS
not_found = 1
OTHERS = 2.
encoding = codepage.
conout = cl_abap_conv_out_ce=>create( encoding = encoding ). "GB2312
TRY .
li_len = STRLEN( str ).
conout->write( data = str n = li_len ). "尝试进行编码
CATCH cx_root.
WRITE '包含繁体中文!'. "有异常,不能进行GB2312编码
RETURN.
ENDTRY.
WRITE '无异常'.

DATA:
codepage(4) TYPE n,
encoding(20) TYPE c,
li_len TYPE i,
str TYPE string VALUE '中文测试123asdfsadf/-.',
conout TYPE REF TO cl_abap_conv_out_ce.
CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
EXPORTING
external_name = 'GB2312'
IMPORTING
sap_codepage = codepage
EXCEPTIONS
not_found = 1
OTHERS = 2.
encoding = codepage.
conout = cl_abap_conv_out_ce=>create( encoding = encoding ). "GB2312
TRY .
li_len = STRLEN( str ).
conout->write( data = str n = li_len ). "尝试进行编码
CATCH cx_root.
WRITE '包含繁体中文!'. "有异常,不能进行GB2312编码
RETURN.
ENDTRY.
WRITE '无异常'.

BIG5是繁体中文的字符集
DATA:
codepage(4) TYPE n,
encoding(20) TYPE c,
li_len TYPE i,
str TYPE string VALUE '中文测试123asdfsadf/-.',
conout TYPE REF TO cl_abap_conv_out_ce.
CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
EXPORTING
external_name = 'BIG5'
IMPORTING
sap_codepage = codepage
EXCEPTIONS
not_found = 1
OTHERS = 2.
encoding = codepage.
conout = cl_abap_conv_out_ce=>create( encoding = encoding ). "GB2312
TRY .
li_len = STRLEN( str ).
conout->write( data = str n = li_len ). "尝试进行编码
CATCH cx_root.
WRITE '包含简体中文!'. "有异常,不能进行GB2312编码
RETURN.
ENDTRY.
WRITE '无异常'.

DATA:
codepage(4) TYPE n,
encoding(20) TYPE c,
li_len TYPE i,
str TYPE string VALUE '中文測試123asdfsadf/-.',
conout TYPE REF TO cl_abap_conv_out_ce.
CALL FUNCTION 'SCP_CODEPAGE_BY_EXTERNAL_NAME'
EXPORTING
external_name = 'BIG5'
IMPORTING
sap_codepage = codepage
EXCEPTIONS
not_found = 1
OTHERS = 2.
encoding = codepage.
conout = cl_abap_conv_out_ce=>create( encoding = encoding ). "GB2312
TRY .
li_len = STRLEN( str ).
conout->write( data = str n = li_len ). "尝试进行编码
CATCH cx_root.
WRITE '包含简体中文!'. "有异常,不能进行GB2312编码
RETURN.
ENDTRY.
WRITE '无异常'.


浙公网安备 33010602011771号