浏览器中没有关于 Unicode 支持的标准。此外,显示字符的能力主要取决于字体,尽管浏览器在扫描字体方面的能力不同。通常你可以做的是指定一个合适font-family
的字体列表,每个字体都支持你需要的所有字符。有关这方面的一般性,请参阅我在 HTML 中使用特殊字符的指南。
在 Android 上,问题在于字体集非常有限。如果您需要超出它们支持的字符,则需要使用可下载的字体,通过@font-face
.
货币符号“؋” U+060B AFGHANI SIGN 出现在大约十几种字体中,但其中唯一的免费字体(如果我们不计算位图字体 GNU Unifont)似乎是Scheherazade。
对于 U+202F NARROW NO-BREAK SPACE,字体支持更广泛。但总的来说,使用其他方法通常比使用此类字符更好。许多字体包含的这个字符几乎和普通空格一样宽,Unicode 标准中关于它的宽度的描述是模糊的:“不间断空格的窄形式,通常是细空格或中间空格的宽度空间”。“细空间”在 Unicode 标准中被描述为“五分之一的 em(或有时是六分之一)”,实际上它的宽度是变化的。而“中间空间”确实是一个未定义的概念。
例如,如果文本是使用空格作为千位分隔符的语言,原则上您可以将 100 000 之类的数字写成100 000
,但最好写成,例如,
<span class="gr">100 000</span>
使用 CSS 代码,例如.gr { word-spacing: -0.15em }
.