question d'encodage ...

gary
Invité n'ayant pas de compte PHPfrance

17 nov. 2008, 13:40

Salut a tous, je fais un INSERT de textes dans ma base pour ensuite les afficher sur une page, le truc c'est que y'a certain caracteres qui s'affichent mal comme é donc je change dans le charset iso-8859-1 par UTF-8 et ca fonctionne mais du coup avec UTF-8 meme probleme pour d'autres caractères comme � .. Comment adapter pour tous ... Merci de votre aide

ViPHP
AB
ViPHP | 5818 Messages

17 nov. 2008, 14:00

C'est que tu as un problème car à un moment donné les deux charset doivent se mélanger.
Il faut être homogène tout au long du code et envoyer des entêtes utf8 en php ainsi qu'une requête pour indiquer à mysql de travailler en utf8.

Par ailleurs il faut faire attention d'enregistrer ton fichier au format unicode(UTF-8) avec ton éditeur.

Un tuto simple où tout le code (html php mysql) est en utf8 http://www.phpfrance.com/forums/voir_sujet-242539.php

Un lien parlant spécifiquement du sujet http://electron-libre.fassnet.net/utf8.php

gary
Invité n'ayant pas de compte PHPfrance

17 nov. 2008, 18:56

Merci pour ta réponse, j'ai bien fait attention a ne pas mélanger les deux charset, ce que j'ai fai c'est que j'ai mis charset UTF-8 sur la page ou je fais l'insert , dans ma table j'ai mis utf8 en character set et j'ai mis charset UTF-8 sur la page ou j'affiche, les caracteres comme é ne s'affichent plus mais les autres � oui, je comprend plus rien ...

ViPHP
ViPHP | 4674 Messages

17 nov. 2008, 19:26

Hey :),

Comment est-ce que tu déclares ton charset au juste ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

gary
Invité n'ayant pas de compte PHPfrance

17 nov. 2008, 19:30

ben j'ai essayé avec

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

et aussi

header('Content-type: text/html; charset=UTF-8');

pareil

gary
Invité n'ayant pas de compte PHPfrance

17 nov. 2008, 19:56

en fait je me suis tres mal exprimé je suis vraiment désolé ...

je fais plus simple :

je prend la page 1 qui a un charset=UTF-8 je fais INSERT du contenu dans ma table utf8 et j'affiche sur ma page charset=UTF-8, tou s'affiche bien

je fais exactement pareil avec mem table meme page d'affichage avec la page 2 qui elle a un charset=iso-8859-1, c'est normal que ca s'affiche mal

Comment bien afficher tous les caracteres quelque soit le charset d'origine... voila Merci encore

ViPHP
ViPHP | 4674 Messages

17 nov. 2008, 21:11

Franchement, pourquoi s'embêter avec un autre charset alors que tu utilises déjà unicode ? Reste en utf-8, ce sera plus simple :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

17 nov. 2008, 21:13

Faut choisir, il ne faut pas en mélanger plusieurs. Fait ta page 2 en utf-8

EDIT Grilled by HyWan

gary
Invité n'ayant pas de compte PHPfrance

18 nov. 2008, 01:18

oui mais pour indexer certains sites en utf-8 et d'autres en iso j'ai pas le choix ...

ViPHP
ViPHP | 4674 Messages

18 nov. 2008, 02:36

je fais exactement pareil avec mem table meme page d'affichage avec la page 2 qui elle a un charset=iso-8859-1, c'est normal que ca s'affiche mal
Et en français ça donne ? Parce que là … … franchement, c'est loin d'être français.

Ce que je comprends c'est que tu as toujours ta base en unicode, mais que ta page est en latin1, donc c'est normal que ça s'affiche mal. À mon avis, le mieux est que tu encodes tes contenus en unicode au moment de l'insertion dans la base, comme ça, tu n'auras qu'à gérer un seul encodage (pour la base et les pages). Regardes du côté des chaînes de caractères multi-octets de PHP. Le mieux est de tout encoder en unicode, et non pas l'inverse (de changer le charset à chaque fois). Après, il faut voir si c'est une méthode adaptée à ton problème.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

gary
Invité n'ayant pas de compte PHPfrance

18 nov. 2008, 12:24

donc en gros pour résumer tous les contenus à inserer dans ma base utf8 doivent être converti en UTF-8 avant l'insertion (en utilisant pour cela les chaînes de caractères multi-octets de php)
OK merci a tous

ViPHP
ViPHP | 4674 Messages

18 nov. 2008, 19:33

Tous les contenus non utf-8 (donc utf-16 est concerné) doivent être convertis en utf-8 oui.

Je préfère attendre l'avis d'un autre sur le sujet avant que tu te lances (sauf si tu y vois un inconvénient).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2008, 21:53

Oui exact tous les contenus non utf-8 ...
Ancun inconvénient au contraire, c'est gentil de ta part Merci