在瀏覽器中對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 000</span>
與CSS代碼如.gr { word-spacing: -0.15em }
。
這似乎更像是一個比一個瀏覽器的問題字體問題。 – melpomene
@melpomene,據我所知,這樣的瀏覽器顯示問題可以通過下載和安裝必要的字體來解決。但是有沒有辦法知道默認情況下是否支持特定的Unicode字符? –
任何操作系統供應商都不會對此承諾。你必須測試它。 –