Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Ext JS / Sencha
Ext JS / Sencha Ext JS / Sencha Forum d'entraide sur les frameworks Ext JS et Sencha. Avant de poster : FAQ ExtJS / Sencha, 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 03/06/2011, 22h03   #1
Membre du Club
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 44
Points : 44
Par défaut Accents avec ExtJS

Bonjour,

J'utilise ExtJS 3.X et j'ai un FormPanel sur une page web codée UTF-8.
Code :
1
2
3
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Ce formPanel me permet de lire et créer des enregistrements d'une table MySQL codée utf8_unicode_ci.
La base elle-même est en interclassement utf8_unicode_ci.
J'arrive à enregistrer des champs avec des accents et à les relire, mais dans la base, les caractères accentués éèàç, par exemple, apparaissent remplacés par des signes tels çôûî.
Ce ne serait pas dramatique, puisque la relecture se fait correctement à travers ExtJS, si je n'utilisais pas cette même base avec une autre application écrite en C++, et là, les caractères mal encodés sont particuliérement gênants, voire rendent l'application inutilisable.
Par conséquent, que faut-il faire pour que ExtJS encode les caratères correctement avant transmission à la base et stockage dans celle-ci ?

D'avance merci.

Kim
kimlee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 12h19   #2
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
qu'est-ce que tu appelle à la relecture ??

avec quoi le lis tu ?
si le soft que tu utilise n'est pas UTF-8 tu dois voir le code UTF-8 du caractère et non le caractère lui-même

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 18h15   #3
Membre du Club
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 44
Points : 44
Par défaut Pb accent avec ExtJs

Merci sekaijin pour ta contribution.
Dans ma page web (en UTF-8), j'ai un FormPanel. Par le bouton 'Save', j'exécute une requête Ajax qui me sauvegarde mes enregistrements. Avec les boutons 'suivant', 'précédent', 'premier', 'dernier' ou 'load', j'ai une autre requête Ajax qui me permet de relire les enregistrements, voire de les re-sauvegarder après modification.
Tous cela semble très bien marcher, y compris avec les caractères accentués, sauf que lorsque j'examine ces enregistrements avec PhpMyAdmin, je constate la présence de caractères mal codés.
Où ça se gâte vraiment, c'est que je dois accéder également à la même base avec une application, que j'ai écrite en C++ (avec QT), et là, ca devient inexploitable, car je retrouve les caractères mal codés. Je précise qu'avec l'appli C++, les caractères accentués apparaissent normalement dans la base (à travers phpMyAdmin), mais sont "vérolés" si je lis avec mon application Web.

D'avance merci si tu as une idée.

Kim
kimlee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 19h08   #4
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
pour que phpMyAdmin décode correctement le UTF8 il faut le paramètrer il y a très longtemps que je ne l'utilise plus il faut voir la doc.

quant à C++ ou QT c'est pareil ton API MyLib te permet de spécifier l'encodage de la base, des table des champs
mais elle ne sait pas pour autant comment ton code C++ gère les caractère ISO UTF 8 16 32 CP EBDIC ...

c'est donc à toi de faire le nécessaire lorsque tu lis ou écrit dans ta base.

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2011, 17h55   #5
Membre du Club
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 44
Points : 44
Par défaut Pb accent avec ExtJS

Bonjour,
En fait, le problème semble bien venir de ExtJS.
En effet, si je met, en "dur" dans mon code PHP des textes accentués, tout se passe bien à l'écriture : ils sont sont corrects à la relecture dans phpMyAdmin et dans mon application C++ (tous deux correctements paramètrés en utf-8). Par contre, à la relecture avec ExtJs, ils apparaissent mal codés.
Tout se passe comme si ExtJS, au moment de la transmission des paramètres vers la requête Ajax les encodait suivant ????
Si quelqu'un à une idée, merci d'avance.

Kim
kimlee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h19   #6
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
Php n'est pas utf-8
Extjs Oui

c'est donc toute ta chaine qu'il te faut voir

ExtJs envoie de l'UTF8 à PHP
qui ne le décode pas si tu ne le fais pas explicitement
du coup les string son vu par Php comme de l'iso
php le passe à la lib MySQL qui les prends en ISO les converti en UTF-8 pour les rendre compatible avec l'encodage de la base.

OOPS c'était déjà de l'UTF8

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 14h20   #7
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 574
Points : 688
Points : 688
Envoyer un message via MSN à kenny.kev
PHP est neutre dans l'encodage des caractères.

En revanche, les fichiers, et les données que tu envoies sont très important mais aussi à ne pas oublier si tu utilise un ORM comme Doctrine encode les caractère en fonction de la configuration détecté (voir le phpinfo de ton site).

En règle général, quand on rencontre ce genre de problème c'est dût à un développement sous Windows. Je m'explique lors de la création du projet il faut faire attention à l'encodage de tes fichiers. Si tu fais un projet en full UTF-8 alors tout doit être en utf-8 même les fichiers. si tu utilise éclipse par exemple, il génère tous les projets en cp1252 (par défaut), il faut donc que tu lui indique que tu ne feras que de UTF-8.
Sous les autres plate-forme, il n'y a pas ce problème car elles sont déjà en UTF-8.

J'espère que j'ai été clair. Si c'est pas la cas dit le moi
kenny.kev est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h38.


 
 
 
 
Partenaires

Hébergement Web