未打印非 ASCII 值符号



>我有一个字符串,其中包含一些字符和符号,其中一些具有ascii代码,其中一些没有;我已经尝试了以下代码,我可以从中转换字符而不是符号

 String strValue = "Ã – string çöntäining nön äsçii çhäräçtérs couldn’t";
        String str = Normalizer.normalize(strValue, Normalizer.Form.NFD);
        System.out.println(str);
        System.out.println( str.replaceAll( "[^\p{ASCII}]","") );

输出为 :

à – string çöntäining nön äsçii çhäräçtérs couldn’t
A  string containing non ascii characters couldnt

我还想要从提供的字符串值中获取" -- "和 "'"。

如果我不进行规范化,它会将我的字符串转换为

? ? string ??nt?ining n?n ?s?ii ?h?r??t?rs couldn?t 

只是不要用""替换想要的字符:

String strValue = "Ã – string çöntäining nön äsçii çhäräçtérs couldn’t";
String str = Normalizer.normalize(strValue, Normalizer.Form.NFD);
System.out.println(str);
System.out.println( str.replaceAll( "[^\p{ASCII}–’]","") ); // ie. replace not (ascii or – or ’)

输出:

à – string çöntäining nön äsçii çhäräçtérs couldn’t
A – string containing non ascii characters couldn’t

演示:https://ideone.com/6zpYao

如果您希望专门替换这些字符,可以先替换它们。

str = str.replaceAll("’", "'");
str = str.replaceAll("–", "--");
str = str.replaceAll( "[^\p{ASCII}–’]","");

相关内容

  • 没有找到相关文章

最新更新