La meilleure façon d'encoder le symbole de degré Celsius dans une page Web?

85

Comment encoder des caractères spéciaux dans des pages Web? Par exemple, j'ai besoin de ce symbole ℃, que j'ai utilisé simplement en copiant et collant le caractère tel que je peux le voir maintenant. Cela a fonctionné pour les navigateurs de bureau avec lesquels j'ai vérifié et également sur iPad et iPhone, mais rien ne s'affiche sur un Blackberry que j'ai utilisé pour les tests. Existe-t-il une meilleure pratique standard pour cela?

http://www.fileformat.info/info/unicode/char/2103/browsertest.htm

Evanss
la source
Existe-t-il une réflexion standard sur ce qu'il faut utiliser, UTF-8 vs Hex ou un autre format? Merci
Evanss
Ah, désolé, je n'ai pas compris votre question au début. Je crois que l'UTF-8 est généralement préféré. En ce qui concerne le symbole lui-même, je fais généralement simplement le signe de degré suivi d'un C majuscule, comme ceci: ° C. Je ne sais pas si c'est mieux ou pire que votre solution. Je suppose que la plus grande différence est l'espacement des lettres entre les deux caractères.
Nix
Je pense qu'il est nécessaire que ce symbole le fasse à votre manière. Merci
Evanss

Réponses:

177

Essayez de le remplacer par °et de définir le jeu de caractères sur utf-8, comme le suggère Martin.

°C vous obtiendrez quelque chose comme ça:

Degré Celsius

Rien
la source
Meilleure réponse, à mon avis
Epirocks
C'est parfait!
Zobia Kanwal
37

Si vous voulez vraiment utiliser le caractère DEGREE CELSIUS «℃», alors le copier-coller est OK, à condition que votre document soit encodé en UTF-8 et déclaré comme tel dans les en-têtes HTTP. L'utilisation de la référence de caractère ℃fonctionnerait également bien et fonctionnerait indépendamment du codage de caractères, mais la source serait beaucoup moins lisible.

Le problème avec Blackberry est probablement un problème de police. Je ne connais pas les polices sur Blackberry, mais le répertoire de polices peut être limité. Vous ne pouvez rien faire à ce sujet en HTML, mais vous pouvez utiliser CSS, éventuellement avec @font face.

Mais il y a rarement une raison d'utiliser le DEGREE CELSIUS. C'est un caractère de compatibilité, inclus dans Unicode en raison de son utilisation en écriture est-asiatique. Le standard Unicode dit explicitement au chapitre 15 (section 15.2, page 497):

"En utilisation normale, il est préférable de représenter les degrés Celsius" ° C "avec une séquence de U + 00B0 degré de signe + U + 0043 lettre majuscule latine c, plutôt que U + 2103 degrés Celsius."

Le signe de degré «°» peut être saisi de plusieurs façons, y compris la référence d'entité «°», mais il est normalement préférable de l'insérer sous forme de caractère, par copier-coller ou autrement. Sous Windows, vous pouvez utiliser Alt 0176.

Mise en garde: certains navigateurs peuvent traiter le signe du degré comme autorisant un saut de ligne après lui même si aucun espace n'intervient, en mettant «°» et le «C» suivant sur des lignes séparées. Il existe différentes manières d'éviter cela . Une méthode simple et efficace est la suivante: <nobr>42 °C</nobr>.

Jukka K. Korpela
la source
1
L'une des meilleures réponses que j'ai lues, avec citation directe de la source clé. Impressionnant!!
htm11h
1
Pourquoi si compliqué du tout? Le degré Celsius se trouve en haut à gauche de mon clavier, appuyez simplement dessus?
Pascal le
2
@Pascal, quel clavier cela pourrait-il être?
Jukka K. Korpela
Utilisez style = "white-space: nowrap" au lieu de <nobr>. developer.mozilla.org/en-US/docs/Web/HTML/Element/nobr
IceWarrior353
10

Utilisation de sup sur la lettre «o» et un «C» majuscule

<sup>o</sup>C

Devrait fonctionner dans tous les navigateurs et IE6 +

Persijn
la source
11
La lettre «o» n'est pas le symbole du degré, mais cela pourrait ressembler au symbole du degré pour les humains. C'est un piratage et il sera déroutant pour les ordinateurs de comprendre - comme les lecteurs d'écran et les moteurs de recherche.
gregers
4

Ajoutez une balise meta à votre en-tête

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

Cela augmente la quantité de caractères que vous pouvez utiliser.

Martin Risell Lilja
la source
5
En HTML5, vous pouvez simplement utiliser <meta charset="utf-8"/>je crois.
Drew Noakes
Dans mon cas, c'était la vraie solution. VS2015 se comporte selon ce que dit la balise meta "Content-Type".
Latorre allemand
L'ajout de cela a résolu un problème pour moi où un °était rendu comme °dans une imgbalise alt où l'image source était manquante.
StephenT
1
  1. Le signe du degré appartient au nombre et non au "C". Vous pouvez considérer le signe du degré comme un symbole numérique, tout comme le signe moins.
  2. Il ne doit y avoir aucun espace entre les chiffres et le signe du degré.
  3. Il doit y avoir un espace insécable entre le signe du degré et le "C".
Johan Hoffsten
la source
Pourriez-vous donner une source de ces affirmations?
Matthieu
0

Si vous utilisez Java-JSP, ce qui a fonctionné pour moi est de coller ci-dessous dans la page JSP

<%@ page contentType="text/html; charset=UTF-8" %>
veritas
la source