变量中的符号号无法处理

dyz*_*dyz 2 sap abap

我从前端以XString的形式获取了一个CSV文件,将其转换为String后,其外观如下:

调试器显示变量

在下一步中,我尝试执行操作,SPLIT lv_string AT '##' INTO TABLE itab以便可以获取数据,但不拆分任何内容,itab包含等于的一行lv_string

如果我尝试REPLACE '#' IN lv_string WITH spacelv_string则不会改变,并且sy-subrc为4。

从我的角度来看,我有这个问题,因为#SAP在这种情况下将符号用作不可打印符号的符号(由转换字节->字符串产生)。

我的问题是:#在这种情况下如何使用SPLIT / REPLACE ?

我还以为我可以在将XString转换为String时更改SAP代码页,但是我已经在使用SAP代码页4110(utf-8),并且不知道更好的选择...

San*_*ssi 8

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

如果变量对应于文本文件的内容,并且##经常发生,则很有可能是Windows文件中对应于“ 换行符 ” 的控制字符U + 000D和U + 000A的组合。

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

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