如何将字符串中的“Umlaute”(ü) 转换为“ue”?

B0B*_*BBY 2 string abap replace non-ascii-characters

我有一个看起来像这样的字符串,例如L\xc3\xbcbeck N\xc3\xbcrnberg \xc3\x96sterreich带有“Umlaute”。

\n

现在我想要split它并在字符串上添加新的“单词”,如下所示L\xc3\xbcbeck N\xc3\xbcrnberg \xc3\x96sterreich Luebeck Nuernberg Oesterreich

\n

\xc3\xa4应该是这样ae\xc3\xb6应该是这样oe\xc3\xbc应该是这样ue

\n

但我不知道如何实现这一目标,谢谢!

\n
DATA: lt_split TYPE TABLE OF char40.\n\nSPLIT string AT space INTO TABLE lt_split.\n
Run Code Online (Sandbox Code Playgroud)\n

Józ*_*zai 6

您可以使用 REPLACE 将一个字符串替换为字符串中的另一个字符串:

\n
REPLACE ALL OCCURENCES OF: \'\xc3\xa4\'\n        IN string\n        WITH \'ae\',\n        \'\xc3\xbc\'\n        IN string \n        WITH \'ue\'.\n
Run Code Online (Sandbox Code Playgroud)\n

该语句还有另一种变体,它可以与内部表一起使用:

\n
REPLACE \'\xc3\xa4\'\n        IN TABLE lt_split\n        WITH \'ae\'.\n
Run Code Online (Sandbox Code Playgroud)\n

https://help.sap.com/doc/abapdocu_751_index_htm/7.51/de-DE/abapreplace_in_pattern.htm

\n

请注意,新字符串会更长(如果至少发生一次替换),如果字符串是固定长度的字符类型并且新字符串会比允许的长度长,这可能会出现问题。

\n