多语言展示
当前在线:832今日阅读:167今日分享:16

READ_TEXT取的文本&变为 &了怎么办?

SAP中使用FM READ_TEXT取的文本&变为 <(>&<)>了怎么办?Read_text读取长文本有&符号,结果变成了<(>&<)>。SAP解释这是系统自动转换的,其他还有一些符号也有同样的问题。
工具/原料
1

FM READ_TEXT

2

FM CONVERT_ITF_TO_STREAM_TEXT

3

SAP Note 730598

方法/步骤
1

如下图:文本中有 GL1 & GL2, 使用READ_TEXT,取得后发现变为  GL1 <(>&<)> GL2了

2

SAP note 730598解释了这个问题,可以使用CONVERT_ITF_TO_ASCII或者CONVERT_ITF_TO_STREAM_TEXT进行转换,我们使用了CONVERT_ITF_TO_STREAM_TEXT,不知道怎么回事CONVERT_ITF_TO_ASCII会加入一些莫名其妙的空格。

3

下面的例子来演示怎么使用FM CONVERT_ITF_TO_STREAM_TEXT来达到转换的目的。如图所示,Billing Item Texts中存在special character &。在使用READ_TEXT获取到这些text后, 获得的是ITF格式的数据 , special character &,会变为 <(>&<)>。所以,我们调用CONVERT_ITF_TO_STREAM_TEXT 将格式进行转换。

4

具体的代码如图所示

5

运行代码,输出效果如图所示,在没有进行转换前取地址&变为<(>&<)> 使用FM CONVERT_ITF_TO_STREAM_TEXT 进行转换后取地址&可以正常显示了。

注意事项

在使用READ_TEXT的时候,其它还有一些特殊符号也有同样的问题

推荐信息