2012-12-15 40 views
3

在所有瀏覽器中是否有標準的統一Unicode字體支持?預期所有瀏覽器的Unicode字體支持的任何標準?

Unicode的最新版本包含超過110,000個字符的涵蓋100個腳本的曲目。我不希望瀏覽器支持所有的瀏覽器,但對於某些字符應該有最低限度的支持,例如來自拉丁文字母,普通標點符號以及數學,貨幣和其他類型的符號。

我目前在Android瀏覽器上顯示U + 060B AFGANI標誌(؋)和U + 202F NARROW NON-BREAK SPACE的問題。我想知道是否有一個普遍認可的Unicode字符列表,以便開發人員可以放心地使用它們,而不必擔心瀏覽器顯示問題。

+1

這似乎更像是一個比一個瀏覽器的問題字體問題。 – melpomene

+0

@melpomene,據我所知,這樣的瀏覽器顯示問題可以通過下載和安裝必要的字體來解決。但是有沒有辦法知道默認情況下是否支持特定的Unicode字符? –

+0

任何操作系統供應商都不會對此承諾。你必須測試它。 –

回答

3

在瀏覽器中對Unicode支持沒有標準。此外,顯示角色的能力主要取決於字體,雖然瀏覽器在通過字體掃描時的能力不同。通常你可以做的是指定一個合適的字體列表,每個字體都支持你需要的所有字符。有關這方面的一般信息,請參閱我的Guide to using special characters in HTML

在Android上,問題是有一組非常有限的字體。如果您需要超出其支持的任何字符,則需要使用可下載的字體,通過@font-face

貨幣符號「؋」U + 060B阿富汗符號存在於大約十幾種字體中,但其中唯一的免費字體(如果我們不計算位圖字體GNU Unifont)似乎是Scheherazade

對於U + 202F狹窄不分隔空間,font support更寬。但總的來說,使用除這些字符之外的其他方法通常更好。許多字體包含的字符幾乎與普通空間一樣寬,並且在Unicode標準中關於其寬度的描述是模糊的:「狹窄形式的不間斷空間,通常是薄空間或中間的寬度空間」。 「精簡空間」在Unicode標準中被描述爲「五分之一(或有時是六分之一)」,並且實際上其寬度各不相同。 「中間空間」實際上是一個未定義的概念。

例如,如果文本是在使用空格作爲千​​位分隔符的語言,則原則上可以寫一個數字,如100 000爲100 000,但最好寫,說,

<span class="gr">100&nbsp;000</span> 

與CSS代碼如.gr { word-spacing: -0.15em }

+0

真棒知識。我會認真考慮你在狹窄的不休息空間使用CSS的建議。如果有人能夠提供涵蓋所有常規和雜項的字體並將其放在Google Web字體上共享,這不是很好嗎? –

+0

我錯誤地寫了一段沒有代碼降價的HTML代碼,所以錯過了一部分想法;現在糾正了。 –

+0

也許我錯了,但我覺得整個問題都被錯誤地誤導了。對於特定代碼點的字體支持與瀏覽器是否理解某個特定代碼點是字母或空格還是什麼都不相同。因此,無論瀏覽器是否「支持」狹窄的非休息空間,意味着它不能觸發換行符,與字體是否包含代表性完全是一個非常不同的問題。 – tchrist

1

AFAIK,所有瀏覽器都支持加載網頁字體的@font-face,並且可以支持這些字體中的任何字符。因此,如果您確保提供對支持這些字符的webfont的訪問權限,則應該能夠在任何瀏覽器中顯示任何字符。

爲了避免使用巨型字體只是支持一些特殊的字符,你可以像Icomoon App工具創建自己的字體。

我使用Icomoon應用程序創建了Emoji emoticon font以及在每個項目的基礎上創建自定義圖標字體。

有關使用或圖標字體(或其他網絡字體)的創作更多信息,請參閱Create webfont with Unicode Supplementary Multilingual Plane symbols

相關問題