วิธีที่ดีที่สุดในการเข้ารหัสสัญลักษณ์องศาเซลเซียสในหน้าเว็บ?


85

ฉันจะเข้ารหัสอักขระพิเศษในหน้าเว็บได้อย่างไร? ตัวอย่างเช่นฉันต้องการสัญลักษณ์นี้℃ซึ่งฉันใช้เพียงแค่คัดลอกและวางอักขระตามที่ฉันเห็นในตอนนี้ สิ่งนี้ใช้ได้กับเบราว์เซอร์เดสก์ท็อปที่ฉันตรวจสอบด้วยและบน iPad และ iPhone แต่ไม่มีอะไรปรากฏบน Blackberry ที่ฉันใช้ในการทดสอบ มีแนวทางปฏิบัติที่ดีที่สุดสำหรับสิ่งนี้หรือไม่?

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


มีการคิดมาตรฐานเกี่ยวกับสิ่งที่จะใช้ UTF-8 vs Hex หรือรูปแบบอื่นหรือไม่? ขอบคุณ
Evanss

อาขอโทษตอนแรกไม่เข้าใจคำถามของคุณ ฉันเชื่อว่าโดยทั่วไปควรใช้ UTF-8 สำหรับสัญลักษณ์นั้นฉันมักจะทำเครื่องหมายองศาแล้วตามด้วยตัวพิมพ์ใหญ่ C ดังนี้: ° C ฉันไม่แน่ใจว่าวิธีนี้ดีหรือแย่กว่าวิธีแก้ปัญหาของคุณหรือไม่ ฉันเดาว่าข้อแตกต่างที่ใหญ่ที่สุดคือระยะห่างระหว่างตัวอักษรระหว่างสองอักขระ
Nix

ฉันคิดว่ามันจำเป็นสำหรับสัญลักษณ์นี้ที่จะทำในแบบของคุณ ขอบคุณ
Evanss

คำตอบ:


178

ลองแทนที่ด้วย°และตั้งค่า charset เป็น utf-8 ตามที่ Martin แนะนำ

°C จะทำให้คุณได้รับสิ่งนี้:

องศาเซลเซียส


คำตอบที่ดีที่สุดในความคิดของฉัน
Epirocks

ที่สมบูรณ์แบบ!
Zobia Kanwal

38

หากคุณต้องการใช้อักขระ DEGREE CELSIUS“ ℃” จริงๆให้คัดลอกและวางได้โดยที่เอกสารของคุณเข้ารหัส UTF-8 และประกาศในส่วนหัว HTTP ใช้การอ้างอิงอักขระ℃จะทำงานได้ดีพอ ๆ กันและจะทำงานโดยไม่ขึ้นกับการเข้ารหัสอักขระ แต่แหล่งข้อมูลจะอ่านได้น้อย

ปัญหาของ Blackberry ส่วนใหญ่อาจเป็นปัญหาเรื่องแบบอักษร ฉันไม่รู้เกี่ยวกับฟอนต์บน Blackberry แต่แบบอักษรอาจมี จำกัด ไม่มีอะไรที่คุณสามารถทำได้ใน HTML แต่คุณสามารถใช้ CSS @font faceได้

แต่แทบไม่มีเหตุผลใด ๆ ที่จะใช้ DEGREE CELSIUS เป็นอักขระที่เข้ากันได้ซึ่งรวมอยู่ใน Unicode เนื่องจากใช้ในการเขียนภาษาเอเชียตะวันออก มาตรฐาน Unicode ระบุไว้อย่างชัดเจนในบทที่ 15 (ส่วนที่ 15.2 หน้า 497):

"ในการใช้งานปกติควรแทนค่าองศาเซลเซียส" ° C "ด้วยลำดับของเครื่องหมาย U + 00B0 องศา + U + 0043 อักษรละติน c แทนที่จะเป็น U + 2103 องศาเซลเซียส"

เครื่องหมายองศา“ °” สามารถป้อนได้หลายวิธีรวมถึงการอ้างอิงเอนทิตี `° แต่โดยปกติแล้วควรใส่เป็นอักขระผ่านการคัดลอกและวางหรืออย่างอื่น ใน Windows คุณสามารถใช้ Alt 0176

ข้อควรระวัง: เบราว์เซอร์บางตัวอาจถือว่าเครื่องหมายองศาว่าอนุญาตให้มีการแบ่งบรรทัดได้แม้ว่าจะไม่มีช่องว่างใด ๆ ก็ตามโดยใส่ "°" และ "C" ต่อไปนี้ไว้ในบรรทัดแยก มีวิธีการที่แตกต่างกันเพื่อป้องกันไม่ให้ <nobr>42 °C</nobr>วิธีการที่ง่ายและมีประสิทธิภาพคือ:


1
หนึ่งในคำตอบที่ดีที่สุดที่ฉันอ่านพร้อมคำพูดโดยตรงจากแหล่งข้อมูลสำคัญ สุดยอด !!
htm11h

1
ทำไมซับซ้อนขนาดนี้? องศาเซลเซียสอยู่ที่ด้านซ้ายบนของแป้นพิมพ์เพียงแค่กด?
Pascal

2
@Pascal แป้นพิมพ์อะไรที่อาจจะเป็น?
Jukka K. Korpela

ใช้ style = "white-space: nowrap" แทน <nobr> developer.mozilla.org/en-US/docs/Web/HTML/Element/nobr
IceWarrior353

10

ใช้supบนตัวอักษร "o" และตัวพิมพ์ใหญ่ "C"

<sup>o</sup>C

ควรใช้งานได้ในทุกเบราว์เซอร์และ IE6 +


11
ตัวอักษร« o »ไม่ใช่สัญลักษณ์องศา แต่อาจดูเหมือนสัญลักษณ์องศาสำหรับมนุษย์ นี่เป็นการแฮ็กและจะทำให้คอมพิวเตอร์เข้าใจยากเช่นโปรแกรมอ่านหน้าจอและเครื่องมือค้นหา
gregers

6

ฉันไม่แน่ใจว่าทำไมถึงยังไม่เกิดขึ้น แต่ทำไมคุณไม่ใช้&#8451;(℃) หรือ&#8457;(℉) สำหรับเซลเซียสและฟาเรนไฮต์ตามลำดับ!


หน้าตาเป็นอย่างไร
Matthieu


4

เพิ่มเมตาแท็กในส่วนหัวของคุณ

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

ซึ่งจะขยายจำนวนอักขระที่คุณสามารถใช้ได้


5
ใน HTML5 คุณสามารถใช้<meta charset="utf-8"/>ฉันเชื่อ
Drew Noakes

ในกรณีของฉันนี่คือทางออกที่แท้จริง VS2015 ทำงานตามที่เมตาแท็ก "ประเภทเนื้อหา" ระบุ
German Latorre

การเพิ่มสิ่งนี้ช่วยแก้ปัญหาสำหรับฉันที่มี°การแสดงผลเป็น°ในimgแท็ก alt ที่ไม่มีรูปภาพต้นฉบับ
StephenT

1
  1. เครื่องหมายองศาเป็นของตัวเลขไม่ใช่ตัว "C" คุณสามารถถือว่าเครื่องหมายองศาเป็นสัญลักษณ์ตัวเลขได้เช่นเดียวกับเครื่องหมายลบ
  2. จะไม่มีช่องว่างระหว่างหลักและเครื่องหมายองศา
  3. มีจะเป็นพื้นที่ที่ไม่ทำลายระหว่างการเข้าสู่ระบบการศึกษาระดับปริญญาและ "C"

คุณช่วยให้แหล่งที่มาของการยืนยันเหล่านั้นได้ไหม
Matthieu

0

หากใช้ Java-JSP สิ่งที่ใช้ได้ผลสำหรับฉันคือวางด้านล่างในหน้า JSP

<%@ page contentType="text/html; charset=UTF-8" %>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.