如何使用Groovy脚本从负载中删除控制字符

o8x7eapl  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(230)

我在SAP CPI应用程序中使用Groovy脚本,它从源系统中获取了一个有效负载,该负载具有控制字符“Backspace”,这会在csv到xml转换的后续步骤中产生问题。我希望在此控制字符到达csv到xml步骤之前将其删除。
我在csv到xml步骤中收到的错误:
要输出的文本中的空白字符(0x8)无效(在xml 1.1中,可以输出为字符实体),原因:java.io.IOException:要输出的文本中的白色字符(0x8)无效(在xml 1.1中,可以输出为字符实体)
我已经使用了以下所有代码:

body=body.toString().replaceAll("\\\\u[0-9a-fA-F]{4}", "")
      body=body.toString().replaceAll("\\\\x08", "")
      body=body.toString().replaceAll("\x8", "")
     /body=body.toString().replaceAll("\\\\x08", "")
        body=body.toString().replaceAll("\\p{Cntrl}", "");
        body=body.toString().replaceAll("[\u0000-\u001f]", "")
      body=body.toString().replaceAll("\\p{Cc}", "")

但都不管用。

wwodge7n

wwodge7n1#

可以使用更简单的替换方法:

String backspace = '\b' as char
body = body.replace(backspace, "")

我们应该注意调用replace(CharSequence,CharSequence)而不是replace(char,char),因为我们要删除退格字符,而不是用另一个字符替换它们。

相关问题