jeu de caractère

Petit nouveau ! | 6 Messages

10 févr. 2010, 12:56

Bonjour à tous,

Je suis en train de bosser sur un site qui afficherait plusieurs langues: italien, francais, espagnol et grec.

Tous se passe bein sur les trois premières mais je galère sur le grec.

Tous les caractères grec qui provienne de la db sont remplacés par des '?',
j'ai tout essayé: changer l'interclassement du champ qui contient le grec,
changer l'interclassement de la table, de la db en general_greek, utf8, etc.
J'ai aussi essayé avec les différents charset dans ma page html, utf8, iso-8859-7, iso-8859-1, rien à faire.
J'ai alors tenté le header avant la sortie... marche pas non plus.
(Si je remplace mes caractères par leur équivalent HTML, là, pas de souci biensur)

Je suis donc en train de me demander si c'est pas une option de config au niveau du serveur ?
Quelqu'un a-t-il déjà rencontré se genre de souci ?

Merci d'avance pour vos réponses

++
santino

ViPHP
ViPHP | 5462 Messages

10 févr. 2010, 14:52

si dans phpmyadmin sa s'affiche bien c'est que ton problème vient de l'encodage de ton fichier, UTF8 unicode partout

Eléphant du PHP | 63 Messages

16 févr. 2010, 20:21

Si l'encodage de la base de données est correcte, il se peut que le serveur apache indique un encodage iso-8859-1 : la transaction php-mysql est alors initiée en iso, et les données utf8 sont perdues lors des requêtes (la page php constituée ensuite est aussi servie par défaut en iso par apache). Pour y remédier :
- utiliser $db->query("SET NAMES UTF8") ; pour indiquer à php de communiquer avec MySQL en UTF-8
- utiliser header('Content-type: text/html; charset=utf-8') ; pour indiquer à Apache de servir la page en UTF-8

(ou reconfigurer apache, mais je ne sais pas faire)

Attention : si le fichier est servi en UTF-8, il est préférable qu'il soit lui-même encodé en utf-8

Cordialement,
elvex

ViPHP
AB
ViPHP | 5818 Messages

17 févr. 2010, 00:18

Il y a un tuto sur l'encodage utf-8 ici qui entre autre, détaille certains des conseils de elvex