Bonsoir à tous,

J'ai un problème avec l'unicode.
J'aimerai utiliser des caractères du genre : ▷ dans mes balises titre et description.

Si je fais un :
echo "▷ ".$montitre;   // mon titre est issu de la BDD


ça ne m'affiche pas le caractère spécial.

Si j'insère directement ▷ dans le champ de mon formulaire de gestion pour enregistrement dans la BDD. ça m'affiche bien le caractère spécial dans la balise titre de la page correspondante et aussi dans l'input du formulaire de gestion. Si ensuite je fais une modification autre et que j'enregistre, du coup le caractère spécial devient un "?".

Pourquoi ces comportements ?

je suis en UTF8 et j'utilise après la connexion à ma BDD et à la sélection de base :
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");

Une idée ?
Ai-je été clair sur mon problème ?

Merci d'avance pour votre aide.
Modifié par TitBen (23 Nov 2009 - 21:01)
Salut !
Merci jo_link_noir pour mysql_set_charset() ... ça règle mon problème de sauvegarde dans la BDD.

Par contre, si je mets ça :

<meta name="Title" content="<?php echo "&#9655; ".$titre_page; ?>" />

Le caractère spécial ne s'affiche pas ! Pourquoi ?

Merci pour votre aide.
TitBen a écrit :
Pourquoi ?

Mauvaise déclaration?

En gros il faudrait déjà qu'on soit sûr que tu as les bonnes données envoyées au navigateur. Genre pas ce qui s'affiche, mais plutôt les valeurs numériques des octets correspondants.

Plus simplement, l'adresse d'une page en ligne serait pas mal.

Dans tous les cas, le premier diagnostic à établir c'est de savoir si tes données arrivant au navigateur sont OK mais mal déclarées (et là on sait quoi faire...), ou pas OK car corrompues (et si oui, de quelle manière?).
Merci à vous pour vos réponses.

Donc pour répondre à jo_link_noir, les balises meta ne sont visibles que dans le code source sauf la balise Title. C'est pour cela que j'ai pris la balise meta title comme exemple.
Cette balise s'affiche en haut du navigateur ainsi que dans l'onglet de navigation.

Je n'ai malheureusement pas de page en ligne pour le moment.

Florent V. : pour ce qui est de ma balise title

<meta name="Title" content="<?php echo "&#9655; ".$titre_page; ?>" />


Tu entends quoi par "mal déclarées" ?

A savoir que :

// n'affiche pas le caractère spécial.
<meta name="Title" content="<?php echo "&#9655; ".$titre_page; ?>" />

// caractère spécial compris dans la variable ... il est affiché
<meta name="Title" content="<?php echo $titre_page; ?>" />


Et si je fais un echo dans ma page pour qu'il soit visible. Il est affiché.
<?php echo "&#9655;"; ?>


Merci de me guider