我从前端获得了一个CSV文件,作为一个XString,在将它转换成字符串之后,如下所示:
在接下来的步骤中,我尝试执行SPLIT lv_string AT '##' INTO TABLE itab
,这样我就可以得到我的数据,但是它不会分割任何东西,itab
包含一个与lv_string
相等的行。
如果我尝试REPLACE '#' IN lv_string WITH space
,lv_string
不会改变,sy-subrc
是4。
从我的观点来看,我有这个问题,因为在这个上下文中,SAP将符号#
用作不可打印符号的符号(这是由转换字节->字符串产生的)。
我的问题是:在这种情况下,如何用#
来使用拆分/替换?
我还认为我可以在将XString转换为String时更改SAP代码页,但是我已经使用了SAP代码页4110
(utf-8),并且没有更好的选择.
发布于 2019-05-05 17:21:32
当您在调试器中显示变量时,它将显示所有未指定字形(正如您所说的“不可打印符号”)的通用字符#
(U+0023)。
如果变量对应于文本文件的内容,并且经常发生##
,则很有可能是控制字符U+000D和U+000A的组合对应于Windows文件中的"纽林“。
在后端调试器中,您可以通过单击"Hexadezimal“按钮(如屏幕快照所示)检查这些字符的十六进制值。
您可以使用包含这两个控制字符的变量CL_ABAP_CHAR_UTILITIES=>CR_LF
。
https://stackoverflow.com/questions/55992342
复制相似问题