Magazine

UTF-8 : linux, windows, mac, everything, everywhere

Publié le 09 octobre 2007 par Olivier Duval

Hier, un ami m’a demandé un coup de pouce pour déboguer un problème d’appel Ajax qui ne fonctionnait pas sous IE (alors que sur la page de démo cela marchait, et sur FF également, damned !) : champ de saisie, propositions de mots, autrement dit de l’autocomplétion.

Voyant les caractères renvoyés par la requête Ajax, c’est à dire des ”?” ou tout autre caractère ésotérique, ni une ni deux, l’origine fut trouvée : l’ISO-8859-1. A défaut, l’usage de la fonction utf8_encode a été la parade pour convertir la donnée à la volée.

La majorité des librairies Ajax (Prototype par exemple) ont un encodage par défaut à UTF-8 (et c’est bien !).

Une parade c’est bien, prendre l’habitude d’utiliser l’UTF c’est mieux. C’est la norme actuelle et future, fini les codespages à n’en plus finir. Tout logiciel sérieux devrait le gérer, on trouve encore trop souvent l’usage de l’encodage ISO-8859-1 (ou 8859-15 pour les windowsistes). Autant que faire se peut (un lourd existant peut l’empêcher par ex.), l’usage de l’UTF devrait être naturel.

Quelques trucs et astuces :

  • pour le Web, cela passe par un document enregistré en utf-8, et un charset à utf-8 :
  • sous Apache, la directive AddDefaultCharset utf-8 peut s’avérer utile
  • un équivalent en ASP.NET pour forcer l’encodage de sortie, ou d’entrée, dans la section du web.config, la directive globalization :
  • accès SSH : fixer sous puTTY l’UTF-8 (Windows / translation)
  • Debian : installer les locales qui vont bien et les positionner à UTF-8 (un excellent article pour Unix) :
$ locale : affiche les locales pour le terminal $ dpkg-reconfigure locales : pour installer et fixer la locale par défaut $ export LC_ALL=fr_FR.UTF-8 pour fixer manuellement
  • vim : un :set fileencoding vous indiquera si vous enregistrez en UTF, ou vous permettra de fixer l’encodage du fichier.
  • iconv sera votre compagnon pour la convertion de fichiers ISO-8859-1 en UTF-8
  • mysql >= 4.1 gère l’UTF en natif. Un “SET NAMES utf-8” indique l’encodage d’échange entre le client et le serveur. MySQL 5.0 charsets et collations (MySQL 4.1)
  • SQL Server : ntype (nvarchar, ntext, ...) est ton ami

Quelques que j’ai pu glaner sur le Net.

Ami PHPiste, Rubyiste, Javaiste, .NETiste, Perliste, kayakiste (euh non), à bon entendeur…

UTF-8 : linux, windows, mac, everything, everywhere

Retour à La Une de Logo Paperblog

A propos de l’auteur


Olivier Duval 4 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog