ho istruire il mio URL per inviare una richiesta Ajax così:UTF-8 URL Decode/Encode
url += '/' + something + '/' + id;
var response;
$.ajax({
async : false,
type: 'DELETE',
url: url,
...
mio removeId
è una variabile che include caratteri UTF-8. Io gestirà quella variabile al lato Java così:
@RequestMapping(value = "/something/{id}", method = RequestMethod.DELETE)
public void myMethod(HttpServletResponse response, @PathVariable String id) {
...
Tuttavia id
variabile al lato Java è diverso dal suo originale, perché UTF-8 caratteri modifiche alle cose strane.
Come posso inviare caratteri UTF-8 dal lato JavaScript e trasformarlo di nuovo sul lato Java (Spring 3 con REST, il mio server Web è Tomcat 7)?
PS 1: Anche io non uso encodeUriComponent
sembra che il mio URL stia codificando da solo?
PS 2: Per rendere questione più chiara:
i.e. my id variable is araç and sent URL is: localhost:8080/sdfasf/ara%C3%A7
quando vedo che variabile id ha quel valore:
araç
invece di:
ara%C3%A7
fa Spring (o Tomcat) lo fanno automaticamente? C'è un modo per decodificarlo automaticamente quando si tratta di controllo come una variabile percorso (intendo senza scrivere nulla come come:
URLDecoder.decode(id,"UTF-8");
sarà convertito automaticamente)
grazie per la tua risposta e la votazione. Voglio solo sicuro. Io uso Spring e ho fatto quella configurazione (non ho fatto nulla con Tomcat) e penso di aver risolto il mio problema. Mi manca qualcosa (voglio dire forse non ho risolto esattamente il problema e alcuni caratteri daranno un errore?) E c'è qualche esempio su come usare request.setCharacterEncoding? – kamaci
@kamaci: non mi ero reso conto che era la tua risposta e che ha già risolto il tuo problema quando ho postato la mia risposta. Chiamare 'setCharacterEncoding' non ha funzionato per i parametri del percorso con il contenitore OC4j di Oracle, forse con tomcat. Anche se questo contraddice alcune risposte a domande simili come http://stackoverflow.com/questions/8079152/charset-filter-causing-issue-in-parsing-utf-8-characters/8079547#8079547 o http://stackoverflow.com/questions/2630748/how-to-enable-reading-non-ascii-characters-in-servlet/2630977 # 2630977 –
grazie per la tua risposta dettagliata. – kamaci