繁体   English   中英

如何删除 Unicode 字符串 Java

[英]How to remove Unicode String Java

我编写了一个 Springboot 应用程序,它从 DynamoDB 读取并生成一个 XML。在表中的一项中,有一个字段包含字符串“”。 这是一个 unicode 字符串,表示 End Of Medium。 请参考下面的屏幕截图以查看它在 DynamoDB 中的外观。 在此处输入图像描述

Springboot 应用读取它。 使用 IntelliJ,我检查了保存该值的变量。 看起来像这样在此处输入图像描述

当我将此值写入 XML 时,XML 标记如下所示。 在此处输入图像描述

还有另一个程序试图解析这个 XML。它失败了

XML character (Unicode: 0x19) at lineNumber: ___ ; columnNumber: ___ ;

我想检查一个字符串是否包含 Unicode 字符串。 如果它包含,我想删除它。 我尝试使用

  • Apache 库:StringEscapeUtils.unescapeJava(test2)
  • replaceAll("\P{打印}", "");

这些的问题在于,它们还删除了像é这样的字符。 例如:L'Oréal 变成 L'Oral OR LOral

任何建议将不胜感激。 谢谢。

正如@g00se 提到的,下面的代码删除了所有不可打印的字符,包括\n \r

input.replaceAll("\\p{Cntrl}", ""); 

下面的代码单独删除了 End of Medium unicode 字符串。

input.replaceAll(unicodeString, "\u0019");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM