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 '无异常'.