有时将Excel中的数据上载到SAP系统内,如果excel中存在非法字符,进入到SAP内就会变成乱码,下面介绍一种方法能将不属于codepage的非法字符替换掉。
逻辑如下:
1,通过函数NLS_GET_FRONTEND_CP()取得当前语言的codepage
2,调用函数SCP_REPLACE_STRANGE_CHARS ()替换非法字符,
代码:
对应英语的codepage来说,汉字就是非法字符,下面程序将汉字替换成空格。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
REPORT ztest_replace_char. DATA: g_tcodepage TYPE cpcodepage. DATA: g_str TYPE string. CALL FUNCTION 'NLS_GET_FRONTEND_CP' EXPORTING langu = 'E' "sy-langu fetype = 'MS' IMPORTING frontend_codepage = g_tcodepage EXCEPTIONS illegal_syst_codepage = 1 no_frontend_cp_found = 2 internal_or_db_error = 3 OTHERS = 4. CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS' EXPORTING intext = 'we333汉语eee' inter_cp = g_tcodepage replacement = 32 " 等于space, ASC IMPORTING outtext = g_str EXCEPTIONS invalid_codepage = 1 codepage_mismatch = 2 internal_error = 3 cannot_convert = 4 fields_not_type_c = 5 OTHERS = 6. WRITE:g_tcodepage ,/ g_str. |
运行后:
附ASCII码
以上。
发表评论