变量中的符号号无法处理

时间:2019-05-05 13:17:00

标签: sap abap

我从前端获得了一个XString格式的CSV文件,将其转换为String后,它看起来如下:

debugger show variable

在下一步中,我尝试执行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),并且不知道更好的替代方法...

1 个答案:

答案 0 :(得分:8)

使用调试器显示变量时,对于所有未分配字形(如您所说的“不可打印符号”)的control characters,它会显示通用字符#(U + 0023) )。

如果变量对应于文本文件的内容,并且频繁发生##,则很有可能是控制字符U + 000D和U + 000A的组合,对应于“ {{ 3}}”。

在后端调试器中,您可以通过单击“十六进制”按钮(在屏幕快照中显示)来检查那些字符的十六进制值。

您可以使用包含两个控制字符的变量CL_ABAP_CHAR_UTILITIES=>CR_LF