簡體   English   中英

從 Java 中的 String 中刪除非 ASCII 字符

[英]Remove non-ASCII characters from String in Java

我有一個包含非 ASCII 字符的 URI,例如:

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

如何從此 URI 中刪除“ ”

我猜是 URL 的來源有問題。 也許您正在解決錯誤的問題? 從 URI 中刪除“奇怪”字符可能會賦予它完全不同的含義。

話雖如此,您可以通過簡單的字符串替換來刪除所有非 ASCII 字符:

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

或者,如果不包含“ ”字符,您可以將其擴展到所有非四字節 UTF-8 字符:

String fixed = original.replaceAll("[^\\u0000-\\uFFFF]", "");
yourstring=yourstring.replaceAll("[^\\p{ASCII}]", "");

[^\\x20-\\x7E]不,這不是ASCII ... [^\\x20-\\x7E]

這是真正的 ascii: [^\\x00-\\x7F]

否則它會剪掉作為 ascii 表一部分的換行符和其他特殊字符!

要從字符串中刪除非 ASCII 字符,下面的代碼對我有用。

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

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

輸出:

<UPC>616043287409</UPC>

使用番石榴字符匹配器

String onlyAscii = CharMatcher.ascii().retainFrom(original)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM