某些UTF-8字符,如C2 96(連字符)的UTF-8等效字符。在瀏覽器中,它顯示爲(utf box 00 96)。而不是' - '(連字符)。這種行爲的任何原因?我們如何解決這個問題?某些UTF-8字符不顯示在瀏覽器上
http://stuffofinterest.com/misc/utf8.php?s=128(請參閱此網址的代碼)
我發現,這可以用HTML實體進行處理。有沒有什麼方法可以顯示這個沒有轉換爲HTML實體?
某些UTF-8字符,如C2 96(連字符)的UTF-8等效字符。在瀏覽器中,它顯示爲(utf box 00 96)。而不是' - '(連字符)。這種行爲的任何原因?我們如何解決這個問題?某些UTF-8字符不顯示在瀏覽器上
http://stuffofinterest.com/misc/utf8.php?s=128(請參閱此網址的代碼)
我發現,這可以用HTML實體進行處理。有沒有什麼方法可以顯示這個沒有轉換爲HTML實體?
我懷疑這是因爲U + 0080和U + 009F之間的字符是控制字符。我仍然有點驚訝,它們直接在HTML中進行編碼比使用實體時顯示的不同,但基本上不應該用它們開頭。 U + 0096並非真正的「連字符」,而是「守衛區域的開始」。
有關更多信息,請參閱U+0080-U+00FF code chart。基本上,儘量避免控制字符...
兩個原因浮現在腦海中:
是的..字符代碼是正確的。我已通過十六進制查看器進行檢查。 – Krishna 2009-09-09 11:06:14
你說的字符是一個連字符,而不是連字符。它的Unicode代碼點是U + 2013,其UTF-8編碼是E2 80 93
,而不是C2 96
。您鏈接的表格不正確。前兩列與UCS-2或Unicode無關;它們實際上包含用於所討論字符的windows-1252編碼。標記爲「UTF-8 Hex」和「UTF-8 Native」的列至少對於標記爲至的行是錯誤的。實體–
和–
代表連字符,但UTF-8序列代表不可顯示的控制字符。
無論如何您都不需要手動對這些字符進行編碼。只要告訴你的文本編輯器(或者你用來創建內容的任何東西),將文件保存爲UTF-8。
我承認這不是連字符。但它絕對是一個UTF8字符。正如所建議的,http://unicode.org/charts/PDF/U0080.pdf表示該角色是「保衛區的開始」。它在與html實體一起使用時顯示爲連字符() – Krishna 2009-09-09 11:16:46
不,實體「」確實代表連字符。它基於windows-1252,因此在技術上不正確,但由於歷史原因,瀏覽器支持它。根據Unicode代碼點,en-dash的正確數字實體是'–'或'–'十六進制。 – 2009-09-09 13:09:41
...或'–'...... – meshy 2013-06-29 09:22:37
非常感謝。如果一個程序遇到這個問題,我們該如何處理?我已經通過Gmail試過了,它沒有顯示。它顯示「守衛區域的開始」爲' - ' 任何想法? – Krishna 2009-09-09 11:05:23
你想如何處理這將取決於應用程序。您可能需要去除字符,或將它們替換爲具有相似顯示特性的另一個Unicode字符(例如,使用適當的連字符)。 – 2009-09-09 11:09:04