[gull] Ubuntu et le type d'encodage utilisé

Grégoire Métral gregoire at metral.ch
Tue Jan 26 12:16:14 CET 2010


Loïc Kuhn a écrit :
> Ce qui fait apparaître un problème entre le codage ISO et le codage
> Utf-8 (pour la petite histoire lorsque je saisis la commande
> dpkg-reconfigure locales => tout est en utf-8 sur le poste ubuntu) connu
> de beaucoup d'utilisateurs.

C'est marrant: j'étais justement en train de rechercher la solution que 
j'avais trouvée il y a quelques mois. Contexte un peu différent: 
application de paiements en ligne, mais problème similaire: signes 
cabalistiques à l'envoi du mail et à l'écriture dans la base de données. 
Tout est en utf-8 (pages, base de données, champs de la base, 
déclaration d'encodage...) et pourtant les caractères n'étaient pas pris 
correctement.

Solution trouvée pour les 2 endroits qui posaient problème:

1) dans l'envoi du mail (fonction mail() de php), ajouter dans les 
headers: Content-type:text/plain; charset=UTF-8"
2) dans l'écriture dans la base de données, j'ai ajouté une commande 
"set names" comme ceci:

    $db = connect_db(); // ma fonction de connexion
    $db_name = db_name(); // ma fonction de base
    mysql_select_db($db_name,$db);
    mysql_query("SET NAMES UTF8"); // la ligne qui m'a sauvé
    $result = mysql_query("insert into .......


Et avec ça, j'ai résolu mon problème. Mais je ne garantis pas que ce 
soit le cas pour toi ;-)

Greg


More information about the gull mailing list