Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 11h29   #1
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
Par défaut jQuery & caractères spéciaux sur Internet Explorer

Salux !

Petit pépin avec Internet Explorer (et lui seul, je n'ai ce problème ni sur Fx ni sur Chrome) lorsque je veux faire un appel Ajax pour transmettre des données saisies dans un formulaire : les accents ne passent pas. Exemple, "éé" est envoyé "éé".

Le charset de page est :
Code :
<meta charset="ISO-8859-1" />
L'appel Ajax (allégé pour faciliter la lecture) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
	url: 'toto',
	data: {
		[...]
		c_fond: $('[data-ligne-id='+ligne_cmde+'] input[name=c_fond]').val(),
		[...]
	},
	type: 'post',
	success: function(data) {
		[...]
	}
});
Dans la console IE, quand je fais $('[data-ligne-id=13] input[name=c_fond]').val() j'obtiens bien "éé".

Avec l'outil de profilage réseau (toujours sur IE) j'obtiens ça dans le corps de message (extrait) :
Je suspecte donc un problème au niveau de mon appel jQuery, mais à vrai dire je ne suis sûr de rien. J'ai vu passer des choses sur Google autour de l'URL, des méthodes GET, mais là ce n'est pas mon problème : les données sont mal transmises lors d'un appel POST.

Une idée ?
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 12h03   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 075
Points : 45 207
Points : 45 207
tes fichiers sont en quel charset ?
ton serveur delivre quel charset ?
ta base ? ...

Perso je passe tout en utf8
http://j-willette.developpez.com/tut...-site-en-utf8/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 13h21   #3
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
J'ai essayé un jour de mettre en UTF-8, mais ça a vite tourné à la catastrophe alors pour être honnête, je n'ai pas creusé plus.

Par contre, je ne pense pas que ça vienne du serveur, puisque de ce que j'ai vu IE m'indique clairement ne pas transmettre ce que $.val() retourne (ou alors l'inspecteur d'IE débloque totalement, ce qui ne serait pas une première).

Je me demandais s'il y avait un réglage particulier au niveau de jQuery que j'aurais zappé.
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 13h30   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 075
Points : 45 207
Points : 45 207
un header charset à tes requetes ?
Code :
1
2
3
 beforeSend: function( xhr ) {
    xhr.overrideMimeType( 'text/plain; charset=x-user-defined' );
  },
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 14h13   #5
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
Ça démarre mal, cette fonction n'existe pas sur IE...

Vu que je développe en Java (WebSphere), est-ce qu'il y a un moyen d'intercepter directement en amont (par ex, un filtre ?) et de réencoder à la volée les paramètres transmis ? (j'imagine qu'il faudrait que j'ouvre un thread séparé pour ça...)

Sinon j'ai essayé de changer le charset en UTF-8, il n'y a pas de différence...
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 15h42   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 075
Points : 45 207
Points : 45 207
Citation:
Sinon j'ai essayé de changer le charset en UTF-8, il n'y a pas de différence
où ça ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 16h18   #7
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
Dans le meta.
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 16h41   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 075
Points : 45 207
Points : 45 207

change le charset du fichier lui même , pas juste le meta

ex: dans notepad ouvre le fichier puis menu>encodage> convertir ...

puis enregistrer
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h19   #9
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
Oui mais...

... Le problème est qu'IE envoie mal les accents saisis dans un champ type=text que j'ai saisis...


(ou j'ai zappé un épisode avec la gestion des encodages, ce qui est tout à fait possible)
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 17h25   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 075
Points : 45 207
Points : 45 207
acceptCharset dans le form ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 10h18   #11
Membre expérimenté
 
Emmanuel Bourgerie
Inscription : mai 2009
Messages : 277
Détails du profil
Informations personnelles :
Nom : Emmanuel Bourgerie

Informations forums :
Inscription : mai 2009
Messages : 277
Points : 503
Points : 503
Salux !

Finalement j'ai trouvé la solution, dans l'ordre :

Ajouter cette ligne au début des méthodes doPost & doGet des servlets :
Code :
request.setCharacterEncoding("UTF-8");
Et en en-tête des JSP :
Code :
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
J'avais tout en ISO-8859-1, j'ai du "précipiter" la migration UTF-8 maintenant, tout fonctionne (même sur IE7, c'est un miracle !)

Merci en tous cas d'avoir eu la patience de m'aider
manudwarf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h30.


 
 
 
 
Partenaires

Hébergement Web