java - 如何替换 Java 中不可打印的 Unicode 字符?

标签 java string unicode

以下将替换 ASCII 控制字符([\x00-\x1F\x7F] 的简写):

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

以下内容将替换所有 ASCII 不可打印字符([\p{Graph}\x20] 的简写),包括重音字符:

my_string.replaceAll("[^\\p{Print}]", "?");

但是,它们都不适用于 Unicode 字符串。有没有人有从 unicode 字符串中删除不可打印字符的好方法?

最佳答案

my_string.replaceAll("\\p{C}", "?");

查看更多关于 Unicode regex 的信息. java.util.regexPattern/String.replaceAll 支持它们。

关于java - 如何替换 Java 中不可打印的 Unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198986/

相关文章:

java - 如何在 Java、Android 上从 ZXing 源执行条形码扫描仪?

linux - 字符串 Bash 脚本 if then 语句失败

python - u'string' 和 unicode(string) 的区别

mysql - 删除经典 ASP/VBScript 中的四字节 UTF-8 字符(MySQL 相关)

java - 如何在纯 Java 中使用 PostConstruct

java - 我在 netbeans 中收到 42000 sql 语法错误,但相同的查询字符串在 mysql 控制台中工作正常

java - 在java中转义这个字符串 "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"的最佳方法是什么

r - 将大括号 {} 替换为引号 "

iphone - 将 NSString 与 UTF32 相互转换

java - 并行执行 TestNG 测试,一个浏览器不会关闭