Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

XMLrequest et accents encore et encore...

17 réponses
Avatar
Jibé
Bonjour,

j'envoie les données d'un champ via un script XMLHttpRequest

ma page traite les données et renvoie la réponse dans un div
Jusque là tout va bien...
Si j'envoie "énergie" ma variable arrive sous la forme "énergie"
(A majuscule accentué , signe copyright, nergie) et ma requête SQL ne
renvoie pas de résultat of course...
J'ai pourtant un
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
dans le head du document.
SI je regard dans firebug, il envoie bien "id énergie"

Je sais que cette histoire d'accents revient souvent mais là je sèche

Merci d'avance

JiBé

10 réponses

1 2
Avatar
Pierre Goiffon
Jibé wrote:
j'envoie les données d'un champ via un script XMLHttpRequest

ma page traite les données et renvoie la réponse dans un div
Jusque là tout va bien...
Si j'envoie "énergie" ma variable arrive sous la forme "énergie"


Typique d'une chaine UTF-8 lue comme de l'ISO Latin-1 ou 9 (cf
l'excellent outil d'Olivier Miakinen :
http://www.miakinen.net/vrac/charsets/)

J'ai pourtant un
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
dans le head du document.


Ca ne suffit pas !!
Voir :
http://pgoiffon.free.fr/info/i18n/web_charset.php

Cependant vous ne spécifiez pas du tout ce qui est sous entendu par "ma
page traite les données et renvoie la réponse". Détaillez, sans cela
impossible de vous dire quoi que ce soit de plus...

Avatar
Jibé


Cependant vous ne spécifiez pas du tout ce qui est sous entendu par "ma
page traite les données et renvoie la réponse". Détaillez, sans cela
impossible de vous dire quoi que ce soit de plus...


Bonjour et merci pour votre réponse.
Je vais essayé d'être plus précis effectivement
Je travaille avec Coldfusion donc en entête de tous mes documents
(application.cfm)
j'ai
<cfprocessingdirective pageencoding="iso-8859-1">
<cfcontent type="text/html; charset=iso-8859-1">
<cfset setEncoding("URL", "iso-8859-1")>
<cfset setEncoding("Form", "iso-8859-1")>

La page en question commence par
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Mon titre</title>
</head>

La page de "requête" récupère le contenu du champ du formulaire transmis
par XMLrequest
et effectue une bête requête SQL du genre
select titre
from message
where titre like '%#id#%'
et ensuite gère la liste des messages correspondant

#titre# <br />

cette liste apparaît dans un div de la page d'origine
Si j'envoie "energie" dans le formulaire pas de problème (c'est une
table MS SQL donc il envoie aussi ce qui contient "énergie")
Si j'envoie "énergie" dans le formulaire, il ne trouve rien car il
reçoit "énergie" (A majuscule accentué , signe copyright, nergie)...

Je n'ai aucun problème d'affichage des accents dans les résultats mais
juste dans ce que je reçois du formulaire
En gros je pense, comme vous l'indiquez, que mon script envoie de
l'UTF-8 et je ne sais comment lui dire de m'envoyer de l'iso-8859-1

Merci

JiBé

Avatar
ASM

La page de "requête" récupère le contenu du champ du formulaire transmis
par XMLrequest


et ce XMLHttpRequest lui il traite quoi ? (utf-8 ou iso-machin)

et effectue une bête requête SQL du genre


la "bête" requète SQL si elle reçoit de l'utf-8 sera peut-être bien
embarrassée, non ?

y prévoir le coup peut-être ?

En gros je pense, comme vous l'indiquez, que mon script envoie de
l'UTF-8 et je ne sais comment lui dire de m'envoyer de l'iso-8859-1


ne suffirait-il pas dans le php/asp de traduire ce <% ID ‰>
avant d'interroger la base ?

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
JiBé
BOnjour,

ne suffirait-il pas dans le php/asp de traduire ce <% ID ‰>
avant d'interroger la base ?


Ben oui mais comme ce n'est ni du php, ni de l'asp mais du coldfusion je
n'ai rien trouvé pour effectuer cette conversion. Une solution en
javascript peut être ?

JiBé



Avatar
ASM
BOnjour,

ne suffirait-il pas dans le php/asp de traduire ce <% ID ‰>
avant d'interroger la base ?


Ben oui mais comme ce n'est ni du php, ni de l'asp mais du coldfusion


Connais pô ... ça fonctionne sur Mac , avec serveur Apache ?

rien trouvé pour effectuer cette conversion.


très mal cherché ?
<http://www.cfmfrance.com/codes/RESOLUTION-VOS-PROBLEMES-ACCENTS-CARACTERES-SPECIAUX_20995.aspx>

Une solution en javascript peut être ?


ça ne semble pas, au vu de cette info ci-dessus.

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
Jibé
BOnjour,

ne suffirait-il pas dans le php/asp de traduire ce <% ID ‰>
avant d'interroger la base ?


Ben oui mais comme ce n'est ni du php, ni de l'asp mais du coldfusion


Connais pô ... ça fonctionne sur Mac , avec serveur Apache ?
Oui ça fonctionne sous mac, windows, linux, solaris et avec un serveur

Apache ou autre

rien trouvé pour effectuer cette conversion.


très mal cherché ?
<http://www.cfmfrance.com/codes/RESOLUTION-VOS-PROBLEMES-ACCENTS-CARACTERES-SPECIAUX_20995.aspx>
Non les paramétrages du serveur sont effectués via le fichier de config

application.cfm comme indiqué plus haut dans mon message.



Une solution en javascript peut être ?




En tout cas merci pour votre recherche

JiBé



Avatar
Pierre Goiffon
Jibé wrote:
Je vais essayé d'être plus précis effectivement


Merci...

Je travaille avec Coldfusion donc en entête de tous mes documents
(application.cfm)
j'ai
<cfprocessingdirective pageencoding="iso-8859-1">
<cfcontent type="text/html; charset=iso-8859-1">
<cfset setEncoding("URL", "iso-8859-1")>
<cfset setEncoding("Form", "iso-8859-1")>


De ce que je comprend la page est donc bien renvoyée avec un entête http
contenant le codage ?

La page de "requête" récupère le contenu du champ du formulaire transmis
par XMLrequest
et effectue une bête requête SQL du genre
select titre
from message
where titre like '%#id#%'
et ensuite gère la liste des messages correspondant

#titre# <br />

cette liste apparaît dans un div de la page d'origine
Si j'envoie "energie" dans le formulaire pas de problème (c'est une
table MS SQL donc il envoie aussi ce qui contient "énergie")
Si j'envoie "énergie" dans le formulaire, il ne trouve rien car il
reçoit "énergie" (A majuscule accentué , signe copyright, nergie)...


Je n'ai toujours pas compris ?
J'imagine que vous avez un formulaire dans votre page générée par Cold
Fusion, ce formulaire une fois soumis provoquerai une requète en
XMLHttpRequest vers une autre page qui renvoit un résultat qui est
affiché dans une div de la page originale. Est-ce bien ça ?

Vous savez, un bon exemple vaut mieux que tout les discours :
mettez-nous en ligne une page qui reproduise le prb...

Avatar
ASM
Connais pô ... ça fonctionne sur Mac , avec serveur Apache ?
Oui ça fonctionne sous mac, windows, linux, solaris et avec un serveur

Apache ou autre


oui, entre temps j'ai visité et vu.

très mal cherché ?
<http://www.cfmfrance.com/codes/RESOLUTION-VOS-PROBLEMES-ACCENTS-CARACTERES-SPECIAUX_20995.aspx>


Non les paramétrages du serveur sont effectués via le fichier de config
application.cfm comme indiqué plus haut dans mon message.


Ha! oui ça semble
(je n'ai pas comparé ce que tu donnes avec ce qu'ils en disent chez
cfmfrance)

Il faudrait maintenant savoir si lors d'une reqête XHR le fichier de
config est aussi appelé ...

Je verrais bien de faire renvoyer avec la réponse l'en-tête xml écrite
en haut et donnant (ou re donnant) le charset

<?xml version="1.0" encoding="utf-8"?>
info de ma base

essayer avec différents charset ?

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
Jibé
Vous avez raison, je vais faire quelque chose en ligne ça sera sans
doute plus simple
Dés que possible car pour le moment je n'ai pas de connexion internet

Vous savez, un bon exemple vaut mieux que tout les discours :
mettez-nous en ligne une page qui reproduise le prb...


Avatar
Jibé
Voilà qui sera peut être plus parlant pour tout le monde

http://habitat-developpement.tm.p15.siteinternet.com/test/

Merci d'avance

JiBé
1 2