UTF8 et xhtml, besoin d'aide :) - HTML/CSS - Programmation
Marsh Posté le 30-10-2003 à 15:21:46
utf8_encode() en PHP ?
Edit : sinon, mettre le < dans ta balise <!doctype>, et quitte à faire du XHTML 1.1, rajouter l'entête XML au fichier.
Marsh Posté le 30-10-2003 à 15:32:20
Meerthyl a écrit : utf8_encode() en PHP ? |
Oups j'avais loupé mon copier/coller mais j'avais bien le "<!" sinon comment ca ce passe pour utf8_encode() ? je viens de mater dans la doc et apparament ca transcrit en code utf8, mais je risque d'avoir une base de données illisible aprés. Une idée ?
et tu peut m'en dire plus pour l'entête xml steuplait ?
Marsh Posté le 30-10-2003 à 15:36:46
Tes données sont stockées comment dans ta base ? En UTF-8 ou en ISO8859 ?
Marsh Posté le 30-10-2003 à 15:41:45
Si ta page est codée en UTF-8, alors ce qui sort de ta base de donnée doit être en UTF-8. Tu peux soit utiliser utf8_encode() à l'insertion mais changer le charset de la page servant à gérer la base, soit encoder à l'affichage et garder une base de données en iso-8859-1.
Pour l'entête XML, en fait c'est une simple ligne <?xml version='1.0' encoding='utf-8'?> à rajouter avant le doctype, qui signale que ta page est de l'XML codé en UTF-8.
Marsh Posté le 30-10-2003 à 15:51:05
Oki donc j'ai fait les modifs de l'entete xml. Ma base est en iso-8859-1 j'encode donc à l'affichage en utf8 via utf8_encode($lemessagesur_la_tribune). Je viens de tester et si l'utilisateur entre le symbole ? ca affiche : €
Quelqu'un à une idée ?
Marsh Posté le 30-10-2003 à 16:00:42
je viens de regarder dans la base et le symbole euro semble rentrer comme ca
â?¬ |
Marsh Posté le 30-10-2003 à 16:10:44
Bah c'est normal, c'est la représentation du symbole ? en UTF8
Tu dois faire utf8_decode si tu veux stocker tout en ISO8859-1... mais tu perds les caractères non-ISO8859-1 et l'euro n'en faisant pas partie...
Marsh Posté le 30-10-2003 à 16:13:45
hum d'accord donc ca semble bon du coté de la base mais comment l'afficher correctement ?
Marsh Posté le 30-10-2003 à 16:53:49
bah tu l'affiches tel quel
Marsh Posté le 30-10-2003 à 16:55:47
ben la j'ai ma page en utf8. Je rentre de l'utf-8 et quand j'affiche ca me fait
�� |
Marsh Posté le 30-10-2003 à 16:59:03
"je rentre de l'utf-8" ça veut dire quoi ?
tu l'affiches comment ? il t'affiche les &...; ?
Marsh Posté le 30-10-2003 à 17:03:01
Oui il m'affiche les "&" et sinon je fais un copier/collé d'un bout de texte en japonais que je prend sur amazon.co.jp
Marsh Posté le 30-10-2003 à 17:04:34
Je l'affiche sans rien y faire de spécial. Si je fais un utf8_encode() à l'affichage ca me fait d'autres caractéres qui sont tout aussi incompréhensible.
Marsh Posté le 30-10-2003 à 17:16:07
ReplyMarsh Posté le 30-10-2003 à 17:25:00
bon ben du coup je suis passé en iso-8859-15 mais ma page valide pas : http://localhost/willo/index.php
d'aprés le validateur j'ai
Character Encoding mismatch! The character encoding specified in the HTTP header (iso-8859-1) is different from the value in the XML declaration (iso-8859-15). I will use the value from the HTTP header (iso-8859-1) for this validation. |
pourtant d'aprés le source de la page ca semble correct
<?xml version='1.0' encoding='iso-8859-15'?> |
Marsh Posté le 30-10-2003 à 17:31:25
kaiska a écrit : http://localhost/willo/index.php |
ton serveur renvoie probablement un charset dans les en-têtes HTTP, je sais pas comment tu peux le modifier
Marsh Posté le 30-10-2003 à 17:35:24
Oups désolé je fait le boulet c'est http://kaiska.flinkserver.net/willo/
oki oki alors pour le charset, je vais devoir voir ça avec mon hebergeur...
Marsh Posté le 30-10-2003 à 19:49:28
antp a écrit : |
Sans doute http://httpd.apache.org/docs-2.0/m [...] ultcharset
Marsh Posté le 30-10-2003 à 19:58:06
Euh... Pour la base, vous vous posez trop de question les gars.
UTF-8 est compatible ANSI, donc on se pose pas de question, tu fout ta table en ANSI, et tu te soucies de rien. Si tu tu vas regarder à la main dedans, tu comprendras rien, mais c'est pas grave, le navigateur configuré en UTF-8 par les meta fera la conversion tout seul, dans les deux sens.
Sinon, un truc avec l'ASP, peut-être pareil avec le PHP. Au lieu de forcer le PHP en UTF-8 à la main dans le code, enregistre le fichier en format UTF-8 (avec NotePad sous Windows XP tu peux, sinon UltraEdit le fait aussi normalement), et normalement l'interpréteur comprendra tout seul comme un grand qu'on veut bosser en UTF-8.
Marsh Posté le 30-10-2003 à 20:33:59
bah oui ça on sait (du moins moi je le sais) mais le problème c'est que
- sa base actuelle n'est pas en UTF8 il me semble
- dans les formulaires il se ramasse des &...; au lieu des valeurs "brutes"
Marsh Posté le 30-10-2003 à 20:38:16
antp a écrit : - dans les formulaires il se ramasse des &...; au lieu des valeurs "brutes" |
Ca c'est sa conf PHP qui doit faire un htmlentities() automatiquement à chaque soumission de formulaire...
Marsh Posté le 30-10-2003 à 15:06:38
Bonjour,
je passe mon site perso en utf8. J'ai quelques soucis...
En fait mon site gére une tribune(un genre de chat) et des news. Je rentre tout ca dans une base mysql avec du php et j'affiche sur la page principale. Le problême c'est que ca marche pas pour plein de caractéres ca m'affiche des petits carrés avec des numéros. Avez vous une idée pour que ca passe bien et que ca valide ?
Voila la declaration de mon document :
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
Merci d'avance de m'enlever une epine du pied