[MySQL/Safari] Alphabet polonais non-rendu par le browser

Lio70

Membre expert
Club iGen
16 Janvier 2004
2 396
1 282
Bonjour,

Je developpe pour un cours de langue un site XHTML/PHP/MySQL avec du texte en francais et en polonais. Le texte de presentation des informations est en francais et les informations elles-memes, a savoir des morceaux de texte en polonais, sont extraites d'une base MySQL.

Je cree les pages simplement avec TextEdit.

J'ai cree la base sur le serveur web via l'interface de PhpMyAdmin. Le jeu de caracteres par defaut est LATIN1-SWEDISH-CI. Quand j'entre des donnees directement par PhpMyAdmin, je constate apres verification que les lettres polonaises sont remplacees par des points d'interrogation, que ce soit via PhpMyAdmin ou en affichant la page "*.php".

En redefinissant le jeu de caracteres de la base en UTF-8 ou en LATIN2-GENERAL-CI, cela regle le probleme dans PhpMyAdmin mais pas dans l'affichage via ma page "*.php". Modifier les parametres de definiton de la langue dans l'en-tete de ma page ne regle pas le probleme. J'ai essaye les combinaisons d'un ou plusieurs de ces parametres:

<html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
<meta http-equiv="Content-Language" content="pl" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />

A noter que si je tape directement du texte en polonais dans un fichier "*.htm", cela ne pose pas de probleme. Je ne vois pas ce que je peux faire d'autre. Merci de vos conseils...
 
Si ta base de données est en utf-8, les pages doivent l'être également avec la bonne meta :

Bloc de code:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Il faut voir aussi si le serveur ne force pas l'envoi des pages en iso-8859, auquel cas tu peux peut corriger le tir avec un fichier .htaccess. Si tu as des pages en php, tu peux envoyer les headers pour déclarer tes pages en utf-8.

Bloc de code:
header('Content-Type: text/html; charset=utf-8');
Cette ligne doit être exécutée avant envoi des données pour l'affichage. ;)

L'utf-8 est le meilleur encodage car plus universel. :)
 
Ce que je te conseil de faire c'est de tout passer en UTF-8, l'encodage de tes fichiers, de ta base, et aussi faut pas oublié de ta connexion MySQL (si ta pas accès au fichier de config essaye la requête "SET NAMES 'utf8';", sinon il y a une fonction php mysql_set_charset('utf8', $taConnexion);).

Ah oui et PHPMyAdmin à toujours était caca pour ce genre de truc d'encodage, essaye de l'utiliser le moins possible.


EDIT: toasted by gloup gloup mais pas grave les post sont complémentaires (un peu) :).
 
  • J’aime
Réactions: Lio70
Merci pour vos reponses. C'est finalement la solution suivante qui fonctionne:
Ajout de l'instruction "mysql_query ("SET NAMES 'utf8'")" juste avant la requete sur la base.
 
  • J’aime
Réactions: p4bl0