无法处理变量中的符号#

Symbol # in variable cannot be handled

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

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

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

从我的角度来看,我遇到这个问题是因为符号 # 在此上下文中被 SAP 用作 non-printable symbols 的符号(由转换字节 -> 字符串产生)。

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

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

当您使用调试器显示变量时,它会为所有未分配字形的 control characters 显示通用字符 # (U+0023)("non-printable symbols"说)。

如果变量对应的是一个文本文件的内容,而且##经常出现,那么很有可能是控制字符U+000D和U+000A的组合,对应的是" newline" 在 Windows 个文件中。

在后端调试器中,您可以通过单击 "Hexadezimal" 按钮(如您的屏幕截图所示)来检查这些字符的十六进制值。

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