Najlepszy sposób na zakodowanie symbolu stopnia Celsjusza na stronie internetowej?

85

Jak kodować znaki specjalne na stronach internetowych? Na przykład potrzebuję tego symbolu ℃, którego użyłem po prostu kopiując i wklejając znak, tak jak widzę go teraz. To działało w przeglądarkach stacjonarnych, z którymi sprawdzałem, a także na iPadzie i iPhonie, ale nic nie jest wyświetlane na Blackberry, którego użyłem do testów. Czy istnieje standardowa najlepsza praktyka?

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

Evanss
źródło
Czy istnieje standardowe myślenie o tym, czego użyć, UTF-8 vs Hex lub inny format? Dzięki
Evanss
Ach, przepraszam, na początku nie zrozumiałem twojego pytania. Uważam, że generalnie preferowany jest UTF-8. Jeśli chodzi o sam symbol, zwykle robię po prostu znak stopnia, po którym następuje duża litera C, na przykład: ° C. Nie jestem pewien, czy to jest lepsze, czy gorsze od twojego rozwiązania. Myślę, że największą różnicą jest odstęp między literami między dwoma znakami.
Nix
Myślę, że konieczne jest, aby ten symbol robił to na swój sposób. Dzięki
Evanss

Odpowiedzi:

177

Spróbuj zamienić go na °, a także ustawić zestaw znaków na utf-8, jak sugeruje Martin.

°C dostaniesz coś takiego:

Stopnie Celsjusza

Nic
źródło
Moim zdaniem najlepsza odpowiedź
Epirocks
To idealne!
Zobia Kanwal
37

Jeśli naprawdę chcesz użyć znaku DEGREE CELSIUS „℃”, kopiowanie i wklejanie jest OK, pod warunkiem, że twój dokument jest zakodowany w UTF-8 i zadeklarowany jako taki w nagłówkach HTTP. Użycie odwołania do znaku ℃działałoby równie dobrze i działałoby niezależnie od kodowania znaków, ale źródło byłoby znacznie mniej czytelne.

Problem z Blackberry to najprawdopodobniej problem z czcionkami. Nie wiem o czcionkach na Blackberry, ale repertuar czcionek może być ograniczony. W HTML nic nie możesz na to poradzić, ale możesz użyć CSS, prawdopodobnie z @font face.

Ale rzadko jest jakiś powód, aby używać DEGREE CELSIUS. Jest to znak zgodności, zawarty w Unicode ze względu na jego użycie w piśmie wschodnioazjatyckim. Standard Unicode wyraźnie mówi w rozdziale 15 (sekcja 15.2, strona 497):

„Przy normalnym użytkowaniu lepiej jest przedstawiać stopnie Celsjusza„ ° C ”za pomocą sekwencji U + 00B0 stopni Celsjusza + U + 0043 łacińska wielka litera c zamiast U + 2103 stopnie Celsjusza.”

Znak stopnia „°” można wprowadzić na wiele sposobów, łącznie z odniesieniem do jednostki „°, ale zwykle najlepiej jest wstawić go jako znak, poprzez kopiowanie i wklejanie lub w inny sposób. W systemie Windows możesz użyć Alt 0176.

Uwaga: Niektóre przeglądarki mogą traktować znak stopnia jako umożliwiający podział wiersza po nim, nawet jeśli nie ma spacji, umieszczając „°” i następujące po nim „C” w oddzielnych wierszach. Istnieją różne sposoby, aby temu zapobiec . Prosta i skuteczna metoda jest taka: <nobr>42 °C</nobr>.

Jukka K. Korpela
źródło
1
Jedna z najlepszych odpowiedzi, jakie przeczytałem, z bezpośrednim cytatem z kluczowego źródła. Niesamowite!!
htm11h
1
Dlaczego w ogóle takie skomplikowane? Stopień Celsjusza znajduje się w lewym górnym rogu klawiatury, wystarczy go nacisnąć?
Pascal
2
@Pascal, jaka to może być klawiatura?
Jukka K. Korpela
Użyj style = "white-space: nowrap" zamiast <nobr>. developer.mozilla.org/en-US/docs/Web/HTML/Element/nobr
IceWarrior353
10

Używanie sup na literze „o” i dużej „C”

<sup>o</sup>C

Powinien działać we wszystkich przeglądarkach i IE6 +

Persijn
źródło
11
Litera „o” nie jest symbolem stopnia, ale może wyglądać jak symbol stopnia dla ludzi. Jest to hack i będzie trudne do zrozumienia dla komputerów - takich jak czytniki ekranu i wyszukiwarki.
gregers
4

Dodaj metatag do swojego nagłówka

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

Zwiększa to liczbę znaków, których możesz użyć.

Martin Risell Lilja
źródło
5
W HTML5 możesz po prostu użyć <meta charset="utf-8"/>Wierzę.
Drew Noakes
W moim przypadku to było prawdziwe rozwiązanie. VS2015 zachowuje się zgodnie z tym, co mówi metatag „Content-Type”.
Niemiecki Latorre
Dodanie tego rozwiązało problem, który powodował, że a °był renderowany jak °w imgtagu alt, w którym brakowało obrazu źródłowego.
StephenT
1
  1. Znak stopnia należy do liczby , a nie do litery „C”. Znak stopnia można traktować jako symbol liczby, tak jak znak minus.
  2. Nie powinno nie być żadnych spacji między cyframi i stopień znaku.
  3. Pomiędzy znakiem stopnia a literą „C” musi znajdować się nienaruszająca się przestrzeń.
Johan Hoffsten
źródło
Czy mógłbyś podać źródło tych twierdzeń?
Matthieu
0

Jeśli używasz Java-JSP, to, co zadziałało, to wkleić poniżej na stronie JSP

<%@ page contentType="text/html; charset=UTF-8" %>
veritas
źródło