Xajax : Encodage

Eléphant du PHP | 441 Messages

29 déc. 2005, 22:08

Bonjour à tous,
je souhaite simplement faire partager une information sur le charset utilisé dans l'encodage des requetes utilisé par la librairie xajax...
L'encodage est réalisé en UTF-8 par défaut mais on peut le changer en modifiant la constante (XAJAX_DEFAULT_CHAR_ENCODING) définie dans le fichier xajax.inc.php.
MAIS cela ne changera rien pour l'envoi des variables par les méthodes POST ou GET car la fonction JS utilisée(getFormValues) pour transmettre les variables les encode toujours en UTF-8 (encodeURIComponent)...
Donc si vous bossez en iso-8859-1, un petit utf8_decode s'impose à la réception de vos données issues d'un POST ou GET...
On n'avait pas fait gaffe au taff et ça nous a couté 2heures pour savoir d'où venaient ses merveilleux caractères spéciaux :lol:
Voilà.
A+
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

22 janv. 2006, 20:21

Une astuce pour reconnaître de l'UTF-8: le texte a l'air normal mais certains caractères "spéciaux" (accentués par exemple) sont précédés de "Â" (0xC2) et les caractères n'ayant pas lieu d'être apparaissent par paire et commencent systématiquement par "Ã" (0xC3)

Exemple:

Code : Tout sélectionner

Il était une fois un maçon qui avait du cœur

Code : Tout sélectionner

Il était une fois un maçon qui avait du cœur

Eléphant du PHP | 85 Messages

22 nov. 2006, 12:09

Si tu peux nous donner les lignes a modifier ça serait sympa,
fais stp un copier coller des anciennes lignes et des nouvelles
comme ça on saura coment on fera le changement.
Merci

ViPHP
ViPHP | 1961 Messages

22 nov. 2006, 13:57

Bonjour,

Au lieu de faire
$myVar = $_POST['myVar'];
Tu dois faire
$myVar = utf8_decode($_POST['myVar']);
C'est pas plus compliqué que ça.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 85 Messages

22 nov. 2006, 14:01

oui t as raison je fesai ça mais ça donne comme resultat :

Centre fran?s

au lieu de :
Centre français

s'il y a des é à è ç ...., il donne le ?.
Bah si je fais :
$var1=mb_convert_encoding($variable, "UTF-8", "ISO-8859-1");
ça marche, mais je dois avoir la derniere vesion de php, mais je travail avec php 4.3 pas avec php5 .

tu vois ?

ViPHP
ViPHP | 1961 Messages

22 nov. 2006, 14:03

Re,

As-tu installé le module 'mbstring' ?

EDIT :
La version de PHP n'est pas en cause, cette fonction existe depuis la 3.0.6
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein