Aller au contenu

pb avec le OE de Oeuf dans balise alt et title


Sujets conseillés

Posté

Bonjour,

je dois afficher un 'oeuf'. Je mets donc la photo de l'oeuf, et dans le descriptif, je met le caractère ''. Dans la mesure où cela m'affiche un caractère spécial (type |), je met le caractère

- Pour ce qui est du nom du produit, ca marche bien. Ce nom est écrit à coté du produit.

- Pour ce qui est de l'infobulle, ca marche aussi, ca m'affiche le bon caractère.

- Mais pour ce qui est du nom mis à la place de l'image (si l'image n'existe pas), alors cela m'affiche un caractère spécial (type |).

Et là, ca ne me va pas trop. Les balises alt et title sont renseignées, et j'ai mis le caractère dans la base de données. Dans le code source, c'est bien le caractère qui s'affiche, et non le caractère

Des idées ?

Posté (modifié)

Hum... Pour aller au plus simple, encode ton caractère en entité numérique : œ

[edit] Sgrnwf de %$! de ... qui interprète les entités[/edit]

Attention, si tu travaille sous Windows, c'est l'un des caractères que celui-ci encode incorrectement en Windows-1252, même si ta page est théoriquement en ISO-8859-1 (voir http://www.openweb.eu.org/articles/caracteres_illegaux/ et http://www.openweb.eu.org/articles/jeux_caracteres/ )

Modifié par LaurentDenis
Posté

1/ Ca me fait toujours un caractère... moyen.

2/ Ca fait un 'oe' minuscule, où il me faudrait un 'oe' majuscule :(

(comme le montre cette image)

C'est le texte à la place de l'image que je voudrais 'arranger'.

post-13-1093809125_thumb.jpg

Posté (modifié)

Bonjour,

Pour le OE majuscule, j'ai trouvé ça :

je ne m'en sors pas pour éditer correctement ce post :blush: :

à la place de 339 dans l'entité, mettre 140 .

Modifié par MissMonde
Posté

Oui, et ca ne marche pas non plus.

Dans mon premier post, les 140 et 339 ont été changés.

J'ai bien essayé avec 140, 399 Œ œ et

Mais ca n'a pas l'air de marcher. De plus, je doute un peu quant au moteur de recherche, si je rentre un caractère hexadécimal.. (m'enfin.. j'en suis pas là..).

Posté

Il me semble que le caractère bizarre en forme de | est affiché quand la police ne comporte pas le caractère que tu veux afficher, mais je suis pas sur. Mais, ça pourrait être la cause du problème, qui ne viendrait pas de toi mais de la police utilisée pour les alt ...

Posté

J'utilise du Verdana, mais suite à ta remarque j'ai essayé avec du 'arial', et du sans Sheriff ( ;) ) , et ca ne veut pas marcher non plus.

Par contre, la base de données contient bien Œ

Posté

mh, tu as changé le font-family dans la css ? Je crois pas que ça influe sur les textes alternatifs, si ?

Posté (modifié)
Oui, et ca ne marche pas non plus.

Dans mon premier post, les 140 et 339 ont été changés.

J'ai bien essayé avec 140, 399 Œ œ et Œ

Mais ca n'a pas l'air de marcher. De plus, je doute un peu quant au moteur de recherche, si je rentre un caractère hexadécimal.. (m'enfin.. j'en suis pas là..).

J'étais un peu pressé hier soir, et je n'avais pas vu qu'il te le fallait en majuscule, et que tu le voulais dans l'attribut alt...

Donc, en fait, en bref :

- tu ne peux pas l'avoir dans l'attribut alt à cause d'IE

- l'encodage numérique valide est Œ et non &#140 qu'il ne faut surtout pas utiliser.

- la police de caractère n'y est pour rien

- c'est la faute à Windows

Essayons de débrousailler un peu tout ça :

Tu travailles sous Windows, n'est-ce pas ? De nombreux outils d'éditions (HTML et autres) sous Windows n'encodent pas tous les caractères de manière standard (en ISO-8859-1 par exemple) : ils encodent selon le charset propre à Windows, qui est Windows-1252.

Dans ce charset Windows, une série de caractères ne sont pas encodés de manière valide, c'est à dire conforme au standard ISO-10646 sur lequel repose le HTML. Il s'agit des caractères codés (par Windows) de &#129 à &#159 qui ne doivent donc jamais être utilisés en HTML. Le Œ et le œ en font partie.

Attention: "encoder" ne veut pas dire forcément "mettre le code numérique" (Œ), mais tout simplement mettre le caractère, que ce soit sous forme littérale ou numérique, dans un éditeur sous Windows.

Encodés incorrectement, ces caractères ne donneront le résultat attendu que dans un navigateur (ou une autre application) qui utilise le charset Windows-1252.

Ce qui complique les choses et qui fait qu'on ne voit pas toujours le problème, c'est :

- qu'IE, et d'autres navigateurs, interprètent en fait souvent les pages en Windows-1252, sans le dire, même si l'encodage ISO-8859-1 a été spécifié à l'aide d'une méta. C'est pourquoi ton caractère était partiellement restitué dans ton navigateur et dans ta base de donnée...

- que beaucoup de tableaux d'équivalence donnant les encodages numériques des caractères indiquent cette plage de codes incorrects au lieu des bos codes.

D'autre part, l'encodage de ces caractères en entités caractères (œ et Œ) est valide... mais ne sera pas reconnu dans tous les cas par tous les navigateurs

Le bon encodage de ces caractères, valide en HTML, est indiqué dans ce tableau de référence :

- & #8230; pour le point de suspension, et non & #133;

- & #338; pour le Œ et non & #140;

- & #339; pour le œ et non & #156;

- & #8212; pour le tiret cadratin —, et non & #151;

- etc.

En les utilisant, ton Œ passera partout dans tous les navigateurs... Et pour les moteurs de recherche aussi (l'encodage numérique est en fait le moyen le plus direct de faire référence au caractère recherché dans le Character Set ISO-10646 qui est la référénce utilisée par les moteurs de recherche).

...sauf dans l'attribut alt avec Internet Explorer :whistling:

...qui a un bug là-dessus :yoot:

Moralité :

un Œuf <img src="..." alt="un oeuf">

:P

Modifié par LaurentDenis
Guest Hellway
Posté (modifié)

Il me semble que les caractère ANSII ne comprennent pas le , je ne saurais pas dire où j'ai vu ça, mais je pense l'avoir lu quelquepart. Ca a peut-être un rapport, non ?

Edité :

Une tite fonction javascript qui peut aider pour les entités numériques. Je m'en sert pour les fichiers XUL encodés en UTF-8.

function 2utf8(varchar)

{

converted = "";

for(i=0; i<varchar.length; i++)

{

x = varchar.charCodeAt(i);

if(x>226)

{

converted += "" + x + ";";

}

else

{

converted += varchar.charAt(i);

}

}

return converted;

}

Sous Mozilla ça marche, pas testé pour IE, mais je pense que oui.

Modifié par Hellway
Posté
Il me semble que les caractère ANSII ne comprennent pas le Œ, je ne saurais pas dire où j'ai vu ça, mais je pense l'avoir lu quelquepart. Ca a peut-être un rapport, non ?

Selon une vieille légende, quand l’ISO (Organisation internationale des standards) a défini l'iso-8859-1 en 1987, le représentant français de l’AFNOR (Association française de normalisation) a "oublié" les ligatures o-e majuscule et minuscule parce que ces caractères ne figuraient pas... sur le clavier de sa machine à écrire favorite :P

Il est vrai que ces caractères ne figurent pas dans l'encodage habituel des document en français (iso-latin) et ne sont normalisé qu'à partir d'UTF-8

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...