我有一个包含非ASCII字符的URI,如:
http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb
如何删除"�"来自此URI
答案 0 :(得分:35)
我猜测URL的来源更有问题。也许你正在修复错误的问题?从URI中删除“奇怪”字符可能会给它带来完全不同的含义。
话虽如此,您可以通过简单的字符串替换删除所有非ASCII字符:
string fixed = original.replaceAll("[^\\x20-\\x7e]", "");
或者你可以将它扩展到所有非四字节UTF-8字符,如果它不包括“ ”字符:
string fixed = original.replaceAll("[^\\u0000-\\uFFFF]", "");
答案 1 :(得分:15)
yourstring=yourstring.replaceAll("[^\\p{ASCII}]", "");
答案 2 :(得分:4)
不不不不不,这不是ASCII ...... [^\x20-\x7E]
这是真实的ascii:[^\x00-\x7F]
否则它将修剪出作为ascii table一部分的换行符和其他特殊字符!
答案 3 :(得分:1)
要从String中删除非ASCII字符,下面的代码对我有效。
String str="<UPC>616043287409ÂÂÂÂ</UPC>";
str = str.replaceAll("[^\\p{ASCII}]", "");
输出:
<UPC>616043287409</UPC>
答案 4 :(得分:1)
使用番石榴CharMatcher
String onlyAscii = CharMatcher.ascii().retainFrom(original)