Forum Linux.debian/ubuntu Debian etch + php + mysql + utf 8

Posté par  (site Web personnel) .
Étiquettes : aucune
0
22
août
2008
Bonjour,
je rencontre un soucis qui m'arrache les cheveux depuis plusieurs jours ...
Impossible d'avoir des caracteres correcte !

Quand j'interroge la base de donnée en ligne ce commande mysql et que j'affiche les entrées à l'ecran tout est correct . Par contre dans phpMyAdmin ou autre site comme joomla 1.5 affiche des choses du genre:

""
La province de Toulouse est constituée de cinq couvents situés à Bordeaux, Toulouse, Montpellier, Marseille et Nice, et de plus petites communautés à La Sainte ­Baume, à Prouilhe, au Pérou, en Haïti et à La Réunion. Le noviciat est au couvent de Marseille. Le deuxième temps de la formation (philosophie) est au couvent de Bordeaux. La théologie s'étudie à Toulouse. Notre Province compte à ce jour un peu plus de 170 frères.
""

Détails de l'installation:
- Debian 4 passé en UTF-8 avec la commande dpkg-reconfigure locale.
Voici le résultat de la commande locale:

""
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
""

Dans apache2 j'ai verifié que /etc/apache2/conf.d/charset contienne:
AddDefaultCharset UTF-8

En desespoir de cause j'ai ajouté ceci dans /etc/php5/php.ini

""
; Langage par défaut
mbstring.language=UTF-8

; Jeu de caractère interne
mbstring.internal_encoding= UTF-8

; Jeu de caractères par défaut pour les données d'entrée HTTP
mbstring.http_input=UTF-8

; Jeu de caractères par défaut pour les données de sortie HTTP
mbstring.http_output=UTF-8

; Ordre de détection des jeux de caractères
mbstring.detect_order= auto
""

Mais rien a faire toujours le meme soucis ...

Une chose qui m'interpelle est dans les variables du serveur mysql:

""
character set client utf8
(Valeur globale) latin1
character set connection utf8
(Valeur globale) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Valeur globale) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_unicode_ci
(Valeur globale) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
""

D'ou sort ce latin 1 ? J'ai rien vu de tel dans la configuration mysql.

Voici la page en question:

http://91.121.157.88/

Merci de votre précieuse aide !
  • # phpinfo

    Posté par  (site Web personnel) . Évalué à 1.

    Est disponible ici:

    http://91.121.157.88/test.php

    Les caracteres que j'ai inséré à la main tout a la fin fonctionne correctement donc je suppose que le default charset de apache2 marche.
    • [^] # Re: phpinfo

      Posté par  . Évalué à 1.

      apt-get install locales-all

      pourrait résoudre ton problème...
  • # Double encodage ?

    Posté par  . Évalué à 1.

    On dirait que tes données ont été encodées deux fois en utf8.

    Tu peux tester en créant un nouveau fichier PHP, qui récupère tes données depuis la base de données, puis en appliquant deux fois la fonction utf8_decode sur ces données, et voir si ça résoud le problème.

    Après, pour trouver l'origine de ce double encodage ...
  • # T'as corrigé ton problème ?

    Posté par  . Évalué à 2.

    Je me demandais si t'avais corrigé ton problème, vu que ton site s'affiche correctement chez moi ... Tu postes la solution ? :-)
  • # Garbled data…

    Posté par  . Évalué à 1.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.