Следующие символы заменят управляющие символы ASCII (сокращение для [\ x00- \ x1F \ x7F]
):
my_string.replaceAll("\\p{Cntrl}", "?");
Следующие заменит все непечатаемые символы ASCII (сокращение для [\ p {Graph} \ x20]
), включая символы с диакритическими знаками:
my_string.replaceAll("[^\\p{Print}]", "?");
Однако ни один из них не работает для строк Unicode. У кого-нибудь есть хороший способ удалить непечатаемые символы из строки Юникода?