Aller au contenu | Aller au menu | Aller à la recherche
Pour mon projet top - secret - que - si - vous - attendez - quelques - semaines - je - vous - dirais - tout, j'ai besoin d'implémenter un système de traduction. Après avoir lu quelques articles sur les jeux de caractères, j'en suis arrivé à la conclusion que l'idéal est d'utiliser UTF-8. J'ai donc cherché à voir ce que PHP propose dans ce domaine et je dois avouer que je suis perplexe.
Si j'ai bien compris, de manière interne PHP gère les chaines de caractères en ISO-8859-1 et il existe 2 fonctions (utf8_encode et utf8_decode) afin de convertir ces chaines vers et depuis UTF-8. La gestion interne des chaines en Unicode a bien été proposée mais cela reste pour le moment à l'étude.
Il y a quelques chose qui me semble vraiment étrange. Si quelqu'un soumet un formulaire contenant des caractères exotiques et que je dois traiter ce texte en PHP, que vont devenir ces caractères exotiques qui n'existent pas en ISO-88-59-1 ?
Suis-je passé à côté de quelque chose ou la gestion correcte des jeux de caractères avec PHP reste-t-elle un doux rêve ?
vendredi 25 juin 2004 à 19h46 -
PHP
1. Le samedi 26 juin 2004 à 14h51, de The Kamelot Blog
Ben voil? au moment o? la question de l'utf-8 se pose, on en parle sur dyingculture ...
Les rétroliens pour ce billet sont fermés.
![]()
En fait, tu peux tr?s bien faire de l'UTF-8 sans trop te poser de questions avec PHP. La seule chose ? garder en m?moire est qu'un caract?re ne correspond pas forc?ment ? un octet de la chaine, et donc des fonctions comme substr(), strlen() ou $chr{} peuvent poser probl?me. Cependant, il n'y a aucun ennui avec la concat?nation et autres, et si tu te d?brouilles pour couper tes chaines aux espaces, par exemple, tu n'auras pas de probl?me. C'est d'ailleur ce que fait Olivier Meunier, je pense. (Il va encore m'en vouloir si je me trompe, mais soit)
Sinon, il existe deux extensions int?ressantes pour celui qui veut manipuler des jeux de caract?res divers : mb_string et iconv. La seconde permet de convertir une chaine de caract?res d'un jeu quelconque ? un autre, et la premi?re fournit des ?quivalents aux fonctions PHP classiques (strlen, substr, ...), mais adapt?es au cas des jeux de caract?res multi-octets. Il est aussi possible de reprogrammer ces fonctions en PHP mais il va sans dire que les performances en p?tissent...
S. F.
le vendredi 25 juin 2004 à 21h47
![]()
Merci pour ces pr?cisions Olivier et S. F.
JMF
le vendredi 25 juin 2004 à 21h48
![]()
De rien
S. F.
le vendredi 25 juin 2004 à 23h21
![]()
Si jamais, regarde aussi la librairie iconv(), si elle est presente dans la configuration du serveur chez ton hebergeur:
www.gnu.org/software/libi...
roby
le vendredi 25 juin 2004 à 23h55
![]()
SF : couper aux espaces, c'est exactement ce que je fais
En fait il n'y a qu'un seul cas dans tout dotclear ; les abstracts pour les trackbacks.
![]()
En fait, j'utilise depuis d?ja quelques temps UTF-8 dans mon code php sans probl?me ...
Mais il faut faire attention aec des fonctions domme htmlentity() et pr?f?rer htmlspecialchars()
Mildred
le mardi 29 juin 2004 à 12h44
![]()
Moi j'ai un gros soucis avec la fonction include(); en UTF-8, elle m'ajoute un saut de ligne au dessus du fichier inclus sous Iinternet Explorer (oui on en revient toujours au meme .... )
Quelqu'un a une id?e pour m'aider ?
beosfrance
le jeudi 16 septembre 2004 à 11h43
![]()
beosfrance> Honn?tement, je ne pense pas que cela soit li?.
JMF
le jeudi 16 septembre 2004 à 11h48
Les commentaires pour ce billet sont fermés.
© 2003-2008 Jean-Marc Fontaine - Tous droits réservés
XHTML - CSS - DotClear - Technorati
Les billets de ce blog sont sous licence Creative Commons
Olivier le vendredi 25 juin 2004 à 21h37