ASCII Char удалить не работает - PullRequest
0 голосов
/ 28 марта 2019

Если строка содержит любое не-ASCII-значение, мне нужно удалить его.

Я попытался заменить все mrthod, который работает нормально с jdk 1.8 и выше. но я хочу развернуть то же самое на JDK 1.6, и он не работает.

String Remarks2 ="hii:╘’i";

String Remarks = Remarks2.replaceAll("[^\\p{ASCII}]", "");
System.out.println("ans: "+Remarks);

Вывод в jdk 1.8: hii: i Вывод в jdk 1.6: hii: i’i

Фактический результат должен быть: i

1 Ответ

0 голосов
/ 29 марта 2019

Как прокомментировал \p{ASCII} пришел позже. В качестве ASCII используется первый 7-битный диапазон:

String remarks = remarks2.replaceAll("[^\u0000-\u007F]", "");

Вы можете попытаться нормализовать текст, разлагая é на e и объединяя метку нулевой ширины ´ сначала:

remarks2 = Normalizer.normalize(remarks2, Form.NFD);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...