|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Développeur Web Inscription : mai 2006 Messages : 936 ![]() |
Bonjour,
Je suis en train de bosser l'encodage d'une application web. - Toutes mes pages sont encodées en UTF8 par mon éditeur. - La base a le charset utf8-unicode - le jeu de caractère des pages HTML est en utf-8 (meta) - Dans mon Design pattern exécutant les requêtes, je fais un : mysql_query("SET NAMES 'utf8'"); afin que php ne gère plus nativement l'iso. Ca fonctionne très bien. Tous les caractères s'affichent correctement de la base vers php et de php vers la base. Tous sauf ceux qui passent par JS (ajax). Sur un formulaire, je saisi des caractères accentués, les textes sont mis en variables par ajax et passés vers une page php. A la réception des variables, un echo rend compte que ces caractères deviennent des "?" donc que ces variables ont été encodées en ISO. A moins de faire un utf8_encode() à leur réception, existe-t'il un moyen plus léger qu'on applique qu'une seule fois au niveau du code? merci
__________________
Développeur indépendant sur technos Web à votre service |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : novembre 2004 Messages : 735 ![]() |
Bonjour,
Suivant la librairie JS que tu utilises, tu dois pouvoir paramétrer l'encodage des variables. Il me semble qu'avec prototype c'est possible.
__________________
Pierre 1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune. 2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers 3. Un code rapide c'est bien, un code maintenable c'est mieux ... Why was the font tag an orphan ? Because it didn't have a font-family. |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Développeur Web Inscription : mai 2006 Messages : 936 ![]() |
Une librairies JS?
Comment ça? Le seul script externe que je n'ai pas développé est ajax.js. Il y aurait une méthode pour convertir les variables en UTF8 depuis ce script?
__________________
Développeur indépendant sur technos Web à votre service |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Si tu créé des fichiers xml pour le transfert vers le client, n'oublie pas d'ajouter <?xml version="1" charset="utf8"?>
__________________
HADOPI : black-out du net! |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Développeur Web Inscription : mai 2006 Messages : 936 ![]() |
Non non en fait la simple réception des variables n'interprète pas le jeu de caractère. Ma page est encodée en UTF8 et les accents sont correctement retournés par le xml (cf utf8_encode()) mais l'affichage de ces variables sans passer par utf8 ne fonctionne pas (=> é devient ?).
Mais je pense qu'il doit bien y avoir une solution afin que mes script JS soient ou bien encodés tous en UTF8 ou bien qu'une fonction dans AJAX permette l'envoi de ces variables encodées en UTF8. Je ne trouve rien à faire à part un utf8_encode mais faire cela dans toutes mes pages php/xml pour chaque variable n'est pas tip top. Merci, à votre écoute...
__________________
Développeur indépendant sur technos Web à votre service |
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() ![]() Inscription : novembre 2004 Messages : 735 ![]() |
De toute façon comme il s'agit d'une saisie faite par le client, tu te dois d'effectuer quelques vérifications. Au moment de ces vérifications, il faudrait appliquer l'utf8
__________________
Pierre 1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune. 2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers 3. Un code rapide c'est bien, un code maintenable c'est mieux ... Why was the font tag an orphan ? Because it didn't have a font-family. |
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() Développeur Web Inscription : mai 2006 Messages : 936 ![]() |
Ouep j'avais déjà regardé et repéré ceci:
Code :
Je vais tester ça plus tard, rajouter un charset...
__________________
Développeur indépendant sur technos Web à votre service |
||
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Développeur Web Inscription : mai 2006 Messages : 936 ![]() |
yeah j'ai trouvé la soluce sur un forum!
Purée j'aurai pu chercher des heures sans ça! Le problème se trouve au niveau de la fonction escape() située dans le fichier ajax.js. Cette fonction appelée au niveau du appendData effectue une convertion en ISO dans le sens où elle convertie les caractères en ASCII hexa. Il suffit de supprimer son appel. Dorénavant je n'ai plus à me soucier d'aucune conversion. J'écris mes accents où je veux sans utf8_encode() sans header("Content-type:...;Charset:...;") sans fonction supplémentaire. Ouf!
__________________
Développeur indépendant sur technos Web à votre service |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com