Bor*_*jaX 9 html css fonts internationalization
我有一个Web应用程序,用户可以在其中更改WSIWYG类型的输入文本区域的字体系列.现在,假设用户在文本区域输入了一些中文文本,但选择了一个不支持中文字符的Font.在我的应用程序中,我希望用户看到那些通常在字体不支持字符时显示的讨厌的正方形(或类似的东西).这样,用户就会知道该字体不支持该语言并且可以选择不同的语言.我遇到的问题是浏览器(Firefox 17和Chrome 23)似乎使用支持这些中文字符的字体(如Arial)呈现文本的中文部分,使用户相信他正在尝试使用的字体工作良好.
有没有办法(我猜通过CSS)来阻止这种情况?有没有办法让浏览器不仅仅是这么"好"?
先感谢您.
您可以通过抛出一个catchall字体拦截字体替换过程,使用一些等效的font-family: userChoice, yourCatchAllwhere yourCatchAll字体,其中包含所有字符的通用字形.
问题在于找到这样的字体.由Unicode Consortium分发的LastResort字体将是理想的,因为它也可以从广义上直观地指示字符的类别,但其EULA似乎不允许修改.这是否适用于Web字体格式(如.eot和.woff)的构造是有争议的.
该统一BMP后备字体看上去有使用更宽松的规定,但在一个盒子里只显示一个字符作为它的Unicode数量(只支持基本多文种平面,但它包含了大多数人听说过的所有字符).
正如其他答案已经解释的那样,解决方案是使用后备字体,其中包括“所有” unicode码点。但是,困难的部分是找到或构建一个不会占用几MB内存的组件。
几年后,现在有了一种用于后备字体的更轻量的解决方案,即Adobe 的NotDef字体。它显示了一个带有1,111,998个Unicode代码点的叉形框,仅约22Kb,并使用SIL OPEN FONT LICENSE版本1.1。
如果您不想显示任何内容,则还有Adobe Blank字体。