2012-10-23 111 views
6

我想弄明白爲什麼這樣的字符:👉像空盒子一樣出現。它們是Unicode字符,字符集是utf-8。UTF-8特殊字符不顯示

它可以是一個沒有字形的字體問題嗎?有任何想法嗎?
詳細信息:HTML頁面,我使用Firefox 16.0.1,Windows 7的..頁一樣對這個職位我沒有看到這個字形或者
感謝

+1

那麼,你已經在問題本身中回答了你的問題。 ) – raina77ow

+0

它完全取決於你的環境。請提供大量額外的細節。 – SLaks

+0

@ raina77ow好的,謝謝。你知道一些能夠在網站上顯示該字符的字體嗎?它只是修復的HTML - 我的意思是添加字體家族:SOME_UNICODE_FONT,它會完成。它取決於網頁瀏覽器字體或系統字體? –

回答

6

你在那裏的角色是Unicode Character 'WHITE RIGHT POINTING BACKHAND INDEX' (U+1F449)。在該頁面上,您可以找到支持鏈接Fonts that support U+1F449後面字符的已知字體列表。

字體
LastResort
Segoe UI Emoji
Segoe UI Symbol
Symbola

這些字體也不是在這裏使用於stackoverflow.com,所以你還會看到一個空框。

如果發生在您自己的網站上,並且您想修復它,那麼您需要通過CSS @font-face提供支持字體以及web應用程序,或者在這種特殊情況下或許更好,尋找基於CSS的圖標庫,如Font Awesome<i class="fa fa-hand-o-right">與這個角色非常接近。

+0

非常感謝。這解釋了一切。所以當我想要使用'奇怪'的字符時,我應該總是考慮在最終用戶的Web瀏覽器上安裝什麼字體? –

+1

不客氣。這是正確的。但是,您也可以通過CSS'@ font-face'提供自己的字體以及web應用程序。 – BalusC

+0

除了網頁設計使用的字體之外,還涉及到瀏覽器和操作系統的字體回退行爲。 – bames53

1

缺少字體的字符通常會與其他字體取代, UTF-8應該能夠顯示所有的Unicode字符。我懷疑你的文件的編碼(它是如何被你的編輯器保存的)與HTML頁面元標記中的聲明不匹配。

你可以用這個W3-checker檢查你的頁面,它可能會給你提示你的頁面問題。

編輯:

你是對的,它不是一個編碼的問題,字符的數量有如此高的數字,認爲「正常」的字體不支持它。也許你可以使用其中的一種,否則你將不得不使用Web字體,並且支持完整Unicode的字體可能非常大。

+0

martin,你能在我的文章中看到這個字形嗎?或者你看到這個廣場與代碼?我的頁面包含charset utf-8聲明。 –

+0

@pawlakppp - 我看到廣場,它應該是什麼樣的符號? – martinstoeckli

+0

它應該是手指向右。所以你看到SO絕對是utf-8兼容的,我們沒有看到這個符號 –

4

字符U + 1F449於2010年在版本6中添加到Unicode中,並且在字體廣泛支持字體之前,通常需要將字符采用爲Unicode大約需要十年時間。

現在包含它的幾種字體包括Symbola和Segoe UI Symbol。如果你安裝了它們中的任何一個,你可能會看到它;否則不。 Segoe UI Symbol隨Windows 8一起提供,顯然與Windows 7(至少某些變體)相同,但Windows 7版本可能有限 - 可從Microsoft獲得updateSymbola是一個免費的字體,所以你原則上可以使用它作爲可下載的字體(通過@font-face),但它的文件大小是相當大的。

如果爲元素指定的字體不包含內容中某些字符的字形,則Web瀏覽器應使用後備字體。Firefox一般會實現這個功能,IE不會,尤其是在老版本中,所以如果你在網頁上使用這個字符,最好把它自己換成一個元素(通常使用span來實現這個目的)並設置如下它在CSS:

font-family: Segoe UI Symbol, Symbola; 

但是,這將作爲這樣的(無@font-face)只能用於使用包含的字體的一個計算機的人。

+0

謝謝你的解釋,我用font-face試了一下,然後我安裝了它,並且沒有使用font-face,並且按照你說的那樣工作;) –