有时将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码

以上。


发表评论