我从前端获得了一个XString格式的CSV文件,将其转换为String后,它看起来如下:
在下一步中,我尝试执行SPLIT lv_string AT '##' INTO TABLE itab
,以便可以获取我的数据,但它不会拆分任何内容,itab
包含等于lv_string
的一行。
如果我尝试REPLACE '#' IN lv_string WITH space
,则lv_string
不会改变,而sy-subrc
是4。
从我的角度来看,我遇到了这个问题,因为SAP在这种情况下将符号#
用作non-printable symbols的符号(由转换字节->字符串产生)。
我的问题是:在这种情况下,如何与#
一起使用SPLIT / REPLACE?
我还认为将XString转换为String时可以更改SAP代码页,但是我已经使用了SAP代码页4110
(utf-8),并且不知道更好的替代方法... >
答案 0 :(得分:8)
使用调试器显示变量时,对于所有未分配字形(如您所说的“不可打印符号”)的control characters,它会显示通用字符#
(U + 0023) )。
如果变量对应于文本文件的内容,并且频繁发生##
,则很有可能是控制字符U + 000D和U + 000A的组合,对应于“ {{ 3}}”。
在后端调试器中,您可以通过单击“十六进制”按钮(在屏幕快照中显示)来检查那些字符的十六进制值。
您可以使用包含两个控制字符的变量CL_ABAP_CHAR_UTILITIES=>CR_LF
。