caracteres spéciaux et base de données
Forum Programmation : caracteres spéciaux et base de données
Bonsoir,
Le contenu de ma BDD contient des caractères spéciaux. Je n'arrive pas à les afficher. J'ai changé la balise méta de la page, voilà ce que ça me fait :
- si je mets utf-8 : le contenu de la bdd s'affiche nickel mais le reste de la page non
- si je mets iso-8889-15 ou un autre iso : le contenu de la page est nickel mais c'est le contenu de la base qui passe pas
Dans la structure de ma base j'ai défini en latin1-swedish et ma page est au format ANSI. Je comprends vraiment rien à ces encodages... complètement perdu là lol. Merci !
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2
Déjà il faut que tu choissisent : UTF-8 ou ISO8859-15. A savoir que si tu es sous Windows les fichiers texte sont le plus souvent en ISO et en plus PHP gère mieux l'ISO. (cf strlen("é" ) qui peut renvoi 2 en UTF-8.
Donc dans ce cas, fichier et bdd en ISO et ensuite il faut vraiment éviter de changer. A savoir que les navigateur ne regarde pas la balise meta si l'en-tête HTTP spécifie un encodage. En configuration par défaut sous Debian/Ubuntu il spécifie. Dans ce cas soit tu change ta conf soit tu utilise la fonction header() de PHP
Répondre à SiM07
Salut,
Merci pour ta réponse.
Voilà ce que j'ai fais :
- fichiers php en ANSI
- base de données en latin1_general_ci
Et c'est toujours pareil, voilà ce que ça me ressort :
"éé" pour des accents
C'est bizarre, quand je remplace latin1-swedish par general-ci ça reste sur swedish...
Je comprends rien de rien là. Soit je suis bête soit y'a un problème lol.
Merci
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2 Répondre à the stalker
Maintenant ça me sort des points d'interrogation... Quelle m***e ces histoires de format, d'interclassement, de charset et de je sais pas quoi. Quelqu'un aurrait-il une solution pour afficher des champs d'une BDD contenant des accents svp? Quel type de champ utiliser (apparemment le TEXT a l'air plus que limité en caractères spéciaux, à moins que ce soit moi qui soit limité
) ? Quel format de page ? Quel interclassement ? etc
Encore merci !
PS : je crois que je vais faire mon site en anglais si ça continu
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2 Répondre à the stalker
et ton en tete HTTP ? à priori je penche pour qu'il envoie du UTF-8. Fait affichage => encodage des caractères pour voir en quoi est mis ta page. pour voir le header HTTP utilise l'extension Live HTTP Header ou Web Developper Toolbar.
Répondre à SiM07
Salut,
Merci pour ton aide.
Non il est bien en ISO-8859-15...
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2 Répondre à the stalker
Par contre, je viens de me rendre compte d'un truc. Quand je lance PhpMyAdmin à partir d'oVH, c'est à partir de là que je gère ma base et que mes données sont rentrées, il y a marqué : French(utf-8). (à l'endroit où l'on doit renseigner les champs utilisateur, mot de passe etc.
J'ai mis en iso mais ça ne change rien.
Voilà ce que j'ai dans mysql :
"Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) " mais je peux pas y changer.
Interclassement : "latin1_general_ci"
Message édité par the stalker le 21-08-2008 à 09:41:02
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2 Répondre à the stalker
Toujours personne ?
Je suis quand même pas le seul à vouloir afficher du texte français provenant d'une base de données ?
Merci
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2 Répondre à the stalker
A priori les caractère spéciaux qui s'affiche sont typique de caractère en UTF-8 mais dont le PC client interprette en ISO.
ISO = 1 octet
UTF = 2 octet
résultat si tu as un caractère en UTF mais que tu spécifie ISO (cf entete HTTP) alors il affiche 2 caractères erronés.
Passe donc ton entete http en UTF-8.
Répondre à SiM07
Ok, merci SIM.
Je vais tout passer en UTF8 j'aurais moins de problème et puis l'utf8... c'est l'avenir
CG : ATI Radeon HD 4870 1go / Alim : Corsair VX 550W / HDD SaTa : WD 200Go, Samsung 320Go, Maxtor 200Go / OS : Windows XP SP2 Répondre à the stalker
et c'est exactement pour cette raison que Tom's Guide est à la ramasse aujourd'hui
Répondre à SiM07
Il y a 379 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
