Pages :
QuentinC a écrit :
Bon billet, même s'il commence à dater.

Je suis assez d'accord.

Personnellement, ça fait longtemps que j'ai banni l'UTF-8, à chaque fois ça me pose de soucis de traitement. Et pour le moment, je ne suis pas tombé sur des clients ayant des "écritures" exotiques... Donc l'ISO-8859-1 (ou 8859-15) est tout simplement de vigueur pour moi.

Le jour où l'UTF-8 me posera moins de souci avec mes traitements php/mysql, on verra
Smiley biggrin
Un premier rappel important : l'utf-8 est le seul jeu de caractères répandu qui permette d'afficher l'intégralité des glyphes (caractères si vous préférez) qui sont utilisés en français. Oui, ni le latin1 (iso-8859-1) ni le latin9 (iso-8859-15) ne comprennent tous ces caractères.

Pour ceux qui iront vérifier cette affirmation péremptoire, rappelez-vous que pour écrire du français on a besoin de plus que l'alphabet et ses diacritiques, on a aussi besoin de tous un tas de glyphes de ponctuations par exemple ; on a également besoin de l'ensemble des diacritiques et des ligatures en majuscules.

Ensuite, en français il arrive que l'on cite des noms étrangers. Sans même parler des noms que l'on considérerait «exotiques» comme les noms arabes ou asiatiques, si l'on parle du compositeur Antonín Dvořák ce n'est pas Antonin Dvorak. Beaucoup d'entre vous ont des diacritiques dans leur nom, aimeriez-vous les voir systématiquement écorchés par des américains par exemple ?

Maintenant, sur les aspects techniques. Oui, l'utf-8 prend un poil (vraiment un poil) de place plus pour le français usuel. C'est négligeable.

Oui, en théorie il demande (pour les logiciels courants du web) PHP 5 et MySQL 4.1 (ou supérieurs). Ca, c'est ce qu'il y a marqué dans les documentations «de base». En pratique, pas du tout. Mediawiki (le logiciel qui fait tourner, entre autre, Wikipedia) gère sans problème l'utf-8 avec PHP 4 et MySQL 3.x et 4.0. Et Textpattern. Et la prochaine version de PunBB. Et j'en passe des dizaines d'autres.

Et aujourd'hui, même un hébergeur un peu «lent» question nouvelles technologies (qui ont déjà pas mal de temps quand même) comme OVH par exemple propose en standard PHP 5 et MySQL 5, pour ceux qui auraient quand même un peu peur. En bref, la plupart des hébergeurs offrent des solutions qui même sans recherche ou compétences correctes permettent à des développeurs d'être natif et de bout en bout en utf-8.

Personnellement en temps qu'utilisateur, je sais que quand je cherche un logiciel pour un usage x (forum, cms, wiki, peu importe) dans ma liste de «si il n'y a pas, au revoir» juste à coté du support d'une version stricte et sans tableaux (au minimum) d'un HTML, il y a le support natif d'utf-8.

La question peut se poser de quand et comment pour ceux qui ont déjà beaucoup de données en latin1/9, ils y viendront un jour mais il n'y a pas forcément le feu (encore que...). Par contre pour une nouvelle application ou un nouveau site, même uniquement et totalement en français (ou même en anglais), le support de l'utf-8 me parait essentiel, normal, basique.
thierry8 a écrit :
Un site allemand, anglais, italien, espagnole ? L'ISO-8859-1 est largement suffisant !

Bonjour
Je ne partage pas ton avis, pour la raison suivante : l'alphabet allemand possède une lettre traduisible par "ss", elle n'est pas représentée en iso-8859-1, idem pour les ñ de la langue espagnole ou italienne ...

Pour le UTF-8, il est intéressant de ne pas le déclarer en UTF-8 ( au niveau de l'encodage sur le logiciel, et non dans le charset ), mais plutot en ANSI as UTF-8, c'est à dire en UTF-8 sans BOM

Voir l'article de openweb.eu.org sur le sujet : http://openweb.eu.org/articles/jeux_caracteres/
thierry8 a écrit :
(...)
Je pense que l'utf-8 est à ce jour est très très mal compris(...)

J'en suis la preuve vivante ! Smiley cligne

Bonjour à toutes et à tous.

Soit un script php avec ce header :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head profile="http://gmpg.org/xfn/11">

    <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />


où dans la partie admin du site l'UTF-8 est déclarée.
Les caractères accentués sont bien interprétés si je place par exemple un article.

Mais c'est dans la personnalisation des scripts que je rencontre un problème : si j'écris par exemple
<div id="footer">

<span>Valid <a href="http://validator.w3.org/check/referer">XHTML</a> and <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></span> -
AVERTISSEMENT : Cette partie du site de <a href="http://nomasis.com">nomasis.com
</a> est destinée aux tests de technologies</div>

a écrit :
- AVERTISSEMENT : Cette partie du site de nomasis.com est destin&#65533;e aux tests de technologies


Est-ce normal ? Autrement dit, dois-je convertir dans les scripts ces caractères ?

Merci de vos réponses.
Modifié par Sventovit (01 Mar 2007 - 10:24)
Salut,
UTF-8, ok pour tous sites. Les fonctions de décodages tels que utf8_decode et utf8_encode de PHP permettent sans autre de passer d'utf-8 à iso-8859-1 ou iso-8859-15.
A+.
thiebo a écrit :


La solution est simplissime, le problème se pose même quand la base est en utf8, je l'ai indiqué dans mon post juste avant. Dans php, tu indiques ceci juste après avoir établie la connection avec mysql :

mysql_query("SET NAMES, 'utf8'");

et là... comme par miracle, ça devrait marcher !


Ou pas, parcequ'il n'y a pas de virgule Smiley cligne

Par contre je confirme qu'avec un mysql_query("SET NAMES 'utf8'"), MySQL renvoit tous les résultats en utf8. Ensuite reste à vérifier que les fichiers sont bien enregistrés en utf-8, sans BOM (unmarked) de préférence, et qu'on a bien mis un charset=utf-8 dans la balise <meta>, et tout roule !
BlueScreenJunky a écrit :
et qu'on a bien mis un charset=utf-8 dans la balise <meta>, et tout roule !

Et avant ça, de vérifier que l'on déclare bien un Charset UTF-8 dans les en-têtes HTTP.
Désolé de remonter cet ancien message, mais effectivement il est fort intéressant. Je suis tombé dessus en cherchant une réponse à la question :
"A part l'iso-8859-1, quel codage faut-il utiliser pour qu'Hotmail affiche correctement les accents dans son webmail ?"

Et j'ai trouvé la réponse : "Aucun". J'ai analysé les messages d'Ebay, j'ai analysé les messages Microsoft, et de pleins d'autres sources de mails qui passent correctement sur Hotmail. TOUS utilisent l'iso-8859-1. Cela implique de modifier tous ses scripts PHP et revoir tous les accents. La faute à un seul et unique client de mail : Hotmail. J'en ai marre d'eux. Internet Explorer n'affiche pas les images transparentes, il faut un script supplémentaire pour se faire, Hotmail n'afficha pas l'UTF8, il faut modifier le format des scripts, Windows n'utilise pas l'iso-8859-1, mais un shmilblik d'iso-8859-1 et de made-in-Microsoft.

Il sme sortent par les trous de nez. Mais pourquoi dans 100% de ce que l'on programme en informatique, il faut obligatoirement créer une section de code en plus pour Microsoft, et Microsoft uniquement. En plus cette section de code est bien évidemment chargée par les logiciels non-Microsoft qui eux sont respectueux des standards.

Rhaaaaa, par piété, arrêtez d'utiliser Hotmail, arrêtez d'utiliser Internet Explorer, c'est une vraie prise de tete ! Smiley decu
Tiens j'étais jamais venu dans cette parte du forum. Smiley langue

Moi j'utilise l'utf-8 parce que Linux écrit tout en utf-8 tout simplement. Smiley lol
Pages :