Mam URI, który zawiera dziwne znaki takie jak:Usuń znaki spoza ASCII z String w Javie
http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb
Jak mogę usunąć „” od tego URI
Mam URI, który zawiera dziwne znaki takie jak:Usuń znaki spoza ASCII z String w Javie
http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl ttrigeSomerzischeruchtanb
Jak mogę usunąć „” od tego URI
jestem zgaduję, że źródło adresu URL jest bardziej zawinione. Być może naprawiasz niewłaściwy problem? Usunięcie "dziwnych" znaków z URI może nadać mu zupełnie inne znaczenie.
Z powiedział, że być może uda się usunąć wszystkie znaki spoza ASCII z prostej wymiany strun:
string fixed = original.replaceAll("[^\\x20-\\x7e]", "");
Albo można przedłużyć, że dla wszystkich nie-cztery-bajt UTF-8 bohaterów, czy to nie obejmuje znaku "":
string fixed = original.replaceAll("[^\\u0000-\\uFFFF]", "");
no no no no no, to nie jest ASCII ... [^\x20-\x7E]
to jest prawdziwe ASCII: [^\x00-\x7F]
W przeciwnym razie będzie przycinać nowe linie i inne znaki specjalne, które są częścią tablicy ascii!
yourstring=yourstring.replaceAll("[^\\p{ASCII}]", "");
Aby usunąć znaki spoza zestawu ASCII z ciągu znaków, poniżej pracował dla mnie kod.
String str = "616043287409";
str = str.replaceAll ("[^ \ p {ASCII}]", "");
wyjścia: 616043287409
Należy unikać umieszczania kodu jako odpowiedzi i próbować wyjaśnić, co robi i dlaczego. Twój kod może nie być oczywisty dla osób, które nie mają odpowiedniego doświadczenia z kodowaniem. – Frits
Zastosowanie Guava CharMatcher
String onlyAscii = CharMatcher.ascii().retainFrom(original)
zdefiniować * * dziwne znaki ... – aioobe
znaki spoza angielski –
jak '_' na przykład? – aioobe