19

次のような非ASCII文字を含むURIがあります。

http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl�ttrigeSomerzischeruchtanb _

このURIから「�」を削除するにはどうすればよいですか

4

5 に答える 5

41

URLのソースはもっと間違っていると思います。おそらくあなたは間違った問題を修正していますか?URIから「奇妙な」文字を削除すると、まったく異なる意味が与えられる可能性があります。

そうは言っても、単純な文字列置換ですべての非ASCII文字を削除できる可能性があります。

String fixed = original.replaceAll("[^\\x20-\\x7e]", "");

または、「�」文字が含まれていない場合は、4バイト以外のすべてのUTF-8文字に拡張できます。

String fixed = original.replaceAll("[^\\u0000-\\uFFFF]", "");
于 2012-05-13T18:49:44.200 に答える
20
yourstring=yourstring.replaceAll("[^\\p{ASCII}]", "");
于 2013-12-08T12:34:08.070 に答える
7

いいえいいえいいえいいえいいえ、これはASCIIではありません... [^\x20-\x7E]

これは本当のASCIIです:[^\x00-\x7F]

それ以外の場合は、ASCIIテーブルの一部である改行やその他の特殊文字を削除します。

于 2012-11-19T08:39:50.497 に答える
5

文字列から非ASCII文字を削除するには、以下のコードが有効でした。

String str="<UPC>616043287409ÂÂÂÂ</UPC>";

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

出力:

<UPC>616043287409</UPC>
于 2016-08-08T14:09:33.447 に答える
4

GuavaCharMatcherを使用する

String onlyAscii = CharMatcher.ascii().retainFrom(original)
于 2017-11-02T17:32:03.313 に答える