Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2951 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  php mysql et unicode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

php mysql et unicode

n°508211
naeco
Buddy Rich Big Band
Posté le 05-09-2003 à 09:52:32  profilanswer
 

Bonjour,
je suis en train de réalise un site dynamique de classement pour differentes aplications, et je voudrais qu'ils soient en plusieurs langues.
 
Pour prendre en charge les différents characteres, la norme uft-8 qui est une version d'unicode si je ne me trompe pas, a l'air la plus compléte, mais une fois enregistré dans la base mysql, tout est convertie en &#---; et le nombre qu'il y a à la place de --- ne corespond pas avec ceux donnée sur le site officiel  
http://www.unicode.org/charts/, serait ce une autre norme?  
 
je connais ce systeme des &#---; mais je ne m'étais jamais posé la question avant savoir qu'elle norme c'était... :sarcastic:
 
peut être pouriez vous éclarer ma lanterne ;)

mood
Publicité
Posté le 05-09-2003 à 09:52:32  profilanswer
 

n°508229
naeco
Buddy Rich Big Band
Posté le 05-09-2003 à 10:01:27  profilanswer
 

ok j'ai compris, il y en a un ou le nombre en hexa l'autre en decimal...
 
mais si vous avez des tuyaux pour ce genre de travail, piege classique ou tout le monde tombe dedans, vos conseils sont les bienvenues ;)

n°508268
Cherrytree
cn=?
Posté le 05-09-2003 à 10:21:10  profilanswer
 

Cela peut venir d'un paramétrage de MySQL. Sur un projet perso, je stocke aussi des données UTF-8 dans MySQL. Mais aucune conversion n'est exécutée (du moins je pense), contrairement au cas que tu décris.


---------------
Le site de ma maman
n°508269
naeco
Buddy Rich Big Band
Posté le 05-09-2003 à 10:24:03  profilanswer
 

merci.
 
Moi tout les caracteres qui sorte des caractères classiques sont convertie en &#---; .
 
 
Si ils sont conserve en uft-8, les caractéres chinois par exemple, ( ou russe.. ;) ) quand tu edite le contenu de ta base avec php my admin, tu les visualises ou tu as un code à la place?

n°508278
Taz
bisounours-codeur
Posté le 05-09-2003 à 10:37:17  profilanswer
 

c'est la lutte pour avoir son unicode
de mon expérience en python, je pense que ça doit fonctionner pareil ailleurs
 
l'utf-8 est une mise en oeuvre technique de l'unicode, donc moi quand je récupère de l'utf-8,, je dois le convertir en unicode abstrait
 
s = unicode("Benoît", 'utf-8')
 
ça me permet un stockage parfaitement indépendant
 
et après je
 
s.encode('une locale' 'replace') # replace pour passer outre les caractères non tradutibles

n°508283
naeco
Buddy Rich Big Band
Posté le 05-09-2003 à 10:39:10  profilanswer
 

merci.
 
oui en effet c'est ca qui me chagrine, c'est que j'avais cru comprendre que le uft-8 est une interpretation de l'unicode mais c'est pas la seule alros en effet comment etre sur que ce sera reconnu partout.
 
quelqu'un sait si il y a une fonction similaire en php?
 
je connais utf8_encode() qui convertit une chaîne ISO-8859-1 en UTF-8.. mais apres nexen ne me donne rien de tres proban...


Message édité par naeco le 05-09-2003 à 10:42:52
n°508519
Cherrytree
cn=?
Posté le 05-09-2003 à 13:30:05  profilanswer
 

Non, c'est pas la seule. Il y a aussi l'utf-16 avec le problème du big/low endian. Au total 3 encodages.
C'est le BOM (s'il est inclus) qui te dit quel encodage est utilisé.
EF BB BF pour UTF-8.
FF FE ou FE FF pour UTF-16 (selon l'endian).


Message édité par Cherrytree le 05-09-2003 à 13:37:08

---------------
Le site de ma maman
n°508520
Cherrytree
cn=?
Posté le 05-09-2003 à 13:34:44  profilanswer
 

Naeco a écrit :

merci.
 
Moi tout les caracteres qui sorte des caractères classiques sont convertie en &#---; .
 
 
Si ils sont conserve en uft-8, les caractéres chinois par exemple, ( ou russe.. ;) ) quand tu edite le contenu de ta base avec php my admin, tu les visualises ou tu as un code à la place?


Je visualise les caractères tels que ASCII les décode. C'est pas très lisible. Un caractère accentué comme 'é' occupe alors (ou semble occuper) deux caractères, et je visionne un truc genre : 'Ã%', bien illisible donc.


---------------
Le site de ma maman
n°511040
naeco
Buddy Rich Big Band
Posté le 09-09-2003 à 16:01:07  profilanswer
 

donc tu utilise utf8_decode() pour afficher le contenu exploitable de ta table?
 
 
Comment verifier que les caracteres tapés sont dans la liste a...z A...Z 0...9 ?
 
et comment convertir une chaine de caractères en &#--; sans la paser dans la base? je n'ai pas trouvé de fonction.
 
et pour la création de table, il faut absolument que les caratere soit de la table ASCII?
 
merci par avance ;)

n°511760
Cherrytree
cn=?
Posté le 10-09-2003 à 15:06:48  profilanswer
 

Même pas. C'est transparent pour moi. Le stockage et la récup' se font sans accroc, sans traitement particulier.


---------------
Le site de ma maman
mood
Publicité
Posté le 10-09-2003 à 15:06:48  profilanswer
 

n°511761
Cherrytree
cn=?
Posté le 10-09-2003 à 15:07:28  profilanswer
 

Naeco a écrit :

Comment verifier que les caracteres tapés sont dans la liste a...z A...Z 0...9 ?
 
et comment convertir une chaine de caractères en &#--; sans la paser dans la base? je n'ai pas trouvé de fonction.
 
et pour la création de table, il faut absolument que les caratere soit de la table ASCII?
 
merci par avance ;)


J'en sais fichtre rien. Mais ça m'intéresse.


---------------
Le site de ma maman
n°513174
naeco
Buddy Rich Big Band
Posté le 12-09-2003 à 12:01:03  profilanswer
 

Bon alors, pour atteindre mon but, j'ai contourné le problème, les noms des tables sont stokées pour pouvoir les avoir en plusieurs langues et j'ai fais une table pour la traduction de tel sorte que pour traduire par exemple "toto par en vacance" je note :
 
$data["toto pas en vaccance"]
 
sinon je convertie tout avec uft8_encode() et je décode a la sortie pour avoir tous les caracteres.
 
par contre es ce qu'il existe pas une posibilité pour apliquer une fonction a tous les résultats d'une requettes mysql?
 
mon but est de ne pas a avoir a noté uft8_decode($data["toto pas en vaccance"]) a chaque fois mais uniquement $data["toto pas en vaccance"] et que la fonction uft8_decode() soit automatiquement apliqué...
 
merci pour votre aide... :hello:
 
A+

n°561497
naeco
Buddy Rich Big Band
Posté le 07-11-2003 à 08:35:26  profilanswer
 

Bonjour, je reviens à la charge avec mon problème... ( et oui j'ai eu du boulot ailleur donc je n'ai pas trop toucher à mon projet ....  :o )
 
Donc à l'heure actuelle, j'ai le champs d'une table où j'enregistre trois chaines de charactères qui peuvent être n'importe quel type de caractere unicode que je concatene entre des "_" et le resultat étant apliqué à utf8_encode().
 
au décodage, le comportement est assez marant (enfin ca dépend de quel point de vu on se place lol)
 
en effet les caracteres russe sont décodé corectement si je n'utilise pas la fonction utf8_decode() et les caractères latin accentué aparaissent corectement uniquement si j'utilise cette fonction! (pourtant donc j'encode tout de la même manière!)
 
Pour ce decodage, je vais donc un utf8decode() puis un explode() avec "_". je pense que ca viens de la, car les données que j'enregistre et que je réedite avec uft8_de/encode() sans concatènation ne presentent pas ce problème...
 
Si quelqu'un a une idée, merci par avance!

n°561533
naeco
Buddy Rich Big Band
Posté le 07-11-2003 à 10:05:19  profilanswer
 

ok désolé, en fait j'avais oublier de faire un utf8_decode à un endroit que je n'avais pas factorisé, desolé ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  php mysql et unicode

 

Sujets relatifs
console mySQLHelp j'arrive pas à implémenter une base Mysql avec PHP
[Mysql] tri sur des champs de même noms[MySQL] les tables se corrompent toutes seules
[MySQL] Détection et suppression des redondances [résolu][Newbie] connection a MySQL
problème de mysqlduplication bidirectionnelle postgresql et mysql
Pb de Date par défaut avec MySQL[PHP, MySQL] Base de données MySQL et Unicode...
Plus de sujets relatifs à : php mysql et unicode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR