Как заменить непечатаемые символы Unicode в Java?

Следующие символы заменят управляющие символы ASCII (сокращение для [\ x00- \ x1F \ x7F] ):

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

Следующие заменит все непечатаемые символы ASCII (сокращение для [\ p {Graph} \ x20] ), включая символы с диакритическими знаками:

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

Однако ни один из них не работает для строк Unicode. У кого-нибудь есть хороший способ удалить непечатаемые символы из строки Юникода?

78
задан David Foerster 14 June 2015 в 23:26
поделиться