Dur Comme Faire

Aller au contenu | Aller au menu | Aller à la recherche

PHP et UTF-8

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 Fil de syndication

Rétroliens

1. Le samedi 26 juin 2004 à 14h51, de The Kamelot Blog

Claroline et l'UTF-8

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.

Commentaires

Gravatar de Olivier

Du moment que ta page web a un charset UTF-8 tu ne te pr?ocupes plus de rien. Ce qui entre sera en UTF-8 et c'est bon.

Ton seul probl?me peut venir si tu as besoin de faire des transformations sur les cha?bes (substr, preg_match, etc.) il faut utiliser les fonctions mb_string.

Olivier le vendredi 25 juin 2004 à 21h37 Icone du permalien

Gravatar de S. F.

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 Icone du permalien

Gravatar de JMF

Merci pour ces pr?cisions Olivier et S. F. :)

JMF le vendredi 25 juin 2004 à 21h48 Icone du permalien

Gravatar de S. F.

De rien :)

S. F. le vendredi 25 juin 2004 à 23h21 Icone du permalien

Gravatar de roby

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 Icone du permalien

Gravatar de Olivier

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.

Olivier le samedi 26 juin 2004 à 01h07 Icone du permalien

Gravatar de Mildred

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 Icone du permalien

Gravatar de beosfrance

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 Icone du permalien

Gravatar de JMF

beosfrance> Honn?tement, je ne pense pas que cela soit li?.

JMF le jeudi 16 septembre 2004 à 11h48 Icone du permalien

Ajouter un commentaire

Les commentaires pour ce billet sont fermés.

XHTML - CSS - DotClear - Technorati

Les billets de ce blog sont sous licence Creative Commons