Tôi có một URI có chứa các ký tự lạ như:Hủy bỏ các ký tự ASCII từ String trong Java
http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb
Làm thế nào tôi có thể loại bỏ "" từ này URI
Tôi có một URI có chứa các ký tự lạ như:Hủy bỏ các ký tự ASCII từ String trong Java
http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb
Làm thế nào tôi có thể loại bỏ "" từ này URI
Tôi đoán rằng nguồn của URL có nhiều lỗi hơn. Có lẽ bạn đang sửa chữa vấn đề sai? Việc xóa các ký tự "lạ" khỏi URI có thể mang lại ý nghĩa hoàn toàn khác.
Với những gì đã nói, bạn có thể loại bỏ tất cả các ký tự ASCII với một sự thay thế chuỗi đơn giản:
string fixed = original.replaceAll("[^\\x20-\\x7e]", "");
Hoặc bạn có thể mở rộng đến tất cả các phi bốn byte UTF-8 nhân vật nếu điều đó không bao gồm "" nhân vật:
string fixed = original.replaceAll("[^\\u0000-\\uFFFF]", "");
không không không không không, đây không phải là ASCII ... [^\x20-\x7E]
Đây là ascii thực: [^\x00-\x7F]
Nếu không, nó sẽ cắt bỏ các dòng mới và các ký tự đặc biệt khác là một phần của bảng ascii!
yourstring=yourstring.replaceAll("[^\\p{ASCII}]", "");
Để xóa ký tự không phải ASCII khỏi chuỗi, bên dưới mã đã làm việc cho tôi.
Chuỗi str = "616043287409ÂÂÂÂ";
str = str.replaceAll ("[^ \ p {ASCII}]", "");
Output: 616043287409
Hãy cố gắng tránh chỉ bán phá giá mã như một câu trả lời và cố gắng giải thích nó là gì và tại sao. Mã của bạn có thể không hiển nhiên đối với những người không có trải nghiệm mã hóa có liên quan. – Frits
Sử dụng Ổi CharMatcher
String onlyAscii = CharMatcher.ascii().retainFrom(original)
xác định * ký tự lạ * ... – aioobe
ký tự không phải tiếng Anh –
như '_' ví dụ? – aioobe