UTF8 et xhtml, besoin d'aide :)

UTF8 et xhtml, besoin d'aide :) - HTML/CSS - Programmation

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 :)

Reply

Marsh Posté le 30-10-2003 à 15:06:38   

Reply

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. :)


Message édité par meerthyl le 30-10-2003 à 15:23:02
Reply

Marsh Posté le 30-10-2003 à 15:32:20    

Meerthyl a écrit :

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. :)


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 ?

Reply

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 ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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. :)

Reply

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 : â&#130;¬
 
Quelqu'un à une idée ?

Reply

Marsh Posté le 30-10-2003 à 16:00:42    

je viens de regarder dans la base et le symbole euro semble rentrer comme ca

&acirc;?&not;


Message édité par kaiska le 30-10-2003 à 16:00:52
Reply

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...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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 ?

Reply

Marsh Posté le 30-10-2003 à 16:53:49    

bah tu l'affiches tel quel


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-10-2003 à 16:53:49   

Reply

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

&auml;&cedil;�&atilde;�&reg;

Reply

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 &...; ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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

Reply

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.

Reply

Marsh Posté le 30-10-2003 à 17:16:07    

Reply

Marsh 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'?>
<!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=iso-8859-15" />

Reply

Marsh Posté le 30-10-2003 à 17:31:25    

kaiska a écrit :

http://localhost/willo/index.php


 
[:dawa]
 
ton serveur renvoie probablement un charset dans les en-têtes HTTP, je sais pas comment tu peux le modifier :/


Message édité par antp le 30-10-2003 à 17:32:01

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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...

Reply

Marsh Posté le 30-10-2003 à 19:49:28    

antp a écrit :

[:dawa]
 
ton serveur renvoie probablement un charset dans les en-têtes HTTP, je sais pas comment tu peux le modifier :/


Sans doute http://httpd.apache.org/docs-2.0/m [...] ultcharset


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

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.

Reply

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"


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed