30 votes

Pourquoi ne puis-je pas afficher un symbole dièse (£) en HTML?

Je suis en train d'afficher le symbole livre en HTML (PHP), mais tout ce que j'obtiens est un symbole avec un point d'interrogation.

Les suivantes sont des choses que j'ai essayé: En PHP: header('Content-type: text/html; charset=utf-8'); En HTML, le mettre dans la balise head: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> J'ai essayé de l'afficher à l'aide d'une fonction javascript, qui le transforme en: &#65533;

Je suppose qu'il serait utile si je savais ce que je faisais... mais je suppose que c'est pourquoi je vous pose cette question :)

13voto

Pekka 웃 Points 249607

Devinette éclairée: vous avez un signe dièse encodé ISO-8859-1 dans une page encodée UTF-8.

Assurez-vous que vos données sont dans le bon encodage et tout fonctionnera correctement.

8voto

ismael Miguel Points 51

1er: le symbole livre est un "spécial" chevalier dans l'encodage utf8 (essayez d'enregistrer £$ en iso-8859-1 (ou iso-8859-15) fichier et vous obtiendrez ä lors de l'encodage à l'aide de l'en-tête)

2ème: modification de l'encodage en utf8 forme le fichier. il ya beaucoup de méthodes pour le faire. le bloc-notes, notepad++ sont de grands suggestions.

3ème: utiliser ob_start(); (en php) AVANT de FAIRE une SORTIE si vous obtenez bizarre erreurs de codage, comme manquant de l'encodage parfois. et OUI, cela résout-il! ce genre d'erreurs se produit lorsqu'une page est encodé en windows-1252(ANSI),ASCII,iso-8859-1(5) et puis vous avez tous les autres en utf8. c'est une terrible erreur et peut provoquer des choses bizarres comme session_start(); ne fonctionne pas.

4ème: php solutions:

utf8_encode('£');
htmlentities('£');
echo '&amp;pound;';

5ème: javascript solutions:

document.getElementById('id_goes_here').innerText.replace('£','&amp;pound;');
document.getElementById('id_goes_here').innerText.replace('£',"\u00A3");
$(this).html().replace('£','&amp;pound;'); //jquery
$(this).html().replace('£',"\u00A3"); //jquery
String.fromCharCode('163');

vous DEVEZ envoyer £, donc il va réparer le code codé point. s'il vous plaît, éviter ces solutions! utilisation de php! ces solutions ne montrent comment "réparer" l'erreur, et le dernier, uniquement pour créer le bien-codé char.

8voto

Rak90 Points 69

Utilisez &#163; . J'ai eu le même problème et l'ai résolu en utilisant jQuery:

 $(this).text('&amp;#163;');
 
  • Si vous essayez ceci et que cela ne fonctionne pas, changez simplement les méthodes jQuery,
 $(this).html('&amp;#163;');
 
  • Cela fonctionne toujours dans tous les contextes ...

6voto

nc3b Points 6704

Avez-vous essayé d'afficher un &pound; ?

Voici une liste accablante.

2voto

Brian Campbell Points 101107

Vous pouvez essayer d'utiliser &pound; ou &#163; au lieu d'incorporer le caractère directement; si vous l'intégrer directement, vous êtes plus probablement à des problèmes d'encodage dans lequel votre éditeur enregistre le fichier est en ISO-8859-1, mais il est interprété comme de l'UTF-8, ou vice versa.

Si vous souhaitez intégrer (ou d'autres caractères Unicode) directement, assurez-vous que vous avez réellement enregistrer votre fichier en UTF-8, et de définir l'encodage comme vous l'avez fait avec l' Content-Type - tête. Assurez-vous que lorsque vous obtenez le fichier à partir du serveur qui l'en-tête est présente et correcte, et que le fichier n'a pas été transcodé par le serveur web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X