J'instruisent mon URL d'envoyer une requête Ajax comme ça:URL UTF-8 Decode/Encode
url += '/' + something + '/' + id;
var response;
$.ajax({
async : false,
type: 'DELETE',
url: url,
...
Mon removeId
est une variable qui comprend un caractère UTF-8. Je poignée variable à côté Java comme ça:
@RequestMapping(value = "/something/{id}", method = RequestMethod.DELETE)
public void myMethod(HttpServletResponse response, @PathVariable String id) {
...
Cependant la variable id
à côté Java est différent de son origine, car caractères UTF-8 changements à des choses étranges.
Comment puis-je envoyer des caractères UTF-8 du côté JavaScript et les transformer de nouveau côté Java (Spring 3 avec REST, mon serveur web est Tomcat 7)?
PS 1: Même si je n'utilise pas encodeUriComponent
, il semble que mon URL est encodée par elle-même?
PS 2: Pour rendre la question plus claire:
i.e. my id variable is araç and sent URL is: localhost:8080/sdfasf/ara%C3%A7
Quand je vois cette variable id a cette valeur:
araç
au lieu de:
ara%C3%A7
Est-ce Spring (ou Tomcat) le fait automatiquement? Est-il possible de le décoder automatiquement quand il s'agit de contrôleur comme une variable de chemin (je veux dire sans écrire quoi que ce soit comme:
URLDecoder.decode(id,"UTF-8");
il sera converti automatiquement)
merci pour votre réponse et voter jusqu'à. Je veux juste être sûr. J'utilise Spring et fait cette configuration (n'a rien fait avec Tomcat) et je pense que j'ai résolu mon problème. Est-ce que je manque quelque chose (je veux dire peut-être que je n'ai pas résolu le problème exactement et certains caractères donneront aussi une erreur?) Et y a-t-il un exemple d'utilisation de request.setCharacterEncoding? – kamaci
@kamaci: Je n'avais pas réalisé que c'était ta réponse et qu'elle avait déjà résolu ton problème quand j'ai posté ma réponse. L'appel 'setCharacterEncoding' n'a pas fonctionné pour les paramètres de chemin avec le conteneur OC4j d'Oracle, peut-être avec tomcat. Bien que cela contredit certaines réponses à des questions similaires, comme http://stackoverflow.com/questions/8079152/charset-filter-causing-issue-in-parsing-utf-8-characters/8079547#8079547 ou http://stackoverflow.com/questions/2630748/comment-activer-lire-non-caractères-ascii-dans-servlets/2630977 # 2630977 –
merci pour votre réponse détaillée. – kamaci