2012-05-13 81 views

Respuesta

27

estoy adivinando que la fuente de la URL es más culpable. Tal vez estás arreglando el problema equivocado? Eliminar caracteres "extraños" de un URI podría darle un significado completamente diferente.

Dicho esto, puede ser capaz de eliminar todos los caracteres no ASCII con una simple sustitución de cadenas:

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

O puede extender el proceso a todos los no-cuatro bytes UTF-8 personajes si que no cubre el carácter "":

string fixed = original.replaceAll("[^\\u0000-\\uFFFF]", ""); 
1

no no no no no, esto no es ASCII ... [^\x20-\x7E]

ésta es ascii real: [^\x00-\x7F]

De lo contrario, recortará las líneas nuevas y otros caracteres especiales que forman parte de la tabla ascii!

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

Para eliminar los Caracteres no ASCII de Cadena, a continuación el código funcionó para mí.

String str = "616043287409»;

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

de salida: 616043287409

+0

Por favor, trate de evitar solo el código de dumping como una respuesta y trate de explicar lo que hace y por qué. Es posible que su código no sea obvio para las personas que no tienen la experiencia de codificación relevante. – Frits

1

Uso guayaba CharMatcher

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