【问题标题】:How to check special character support with javascript?如何使用 javascript 检查特殊字符支持?
【发布时间】:2012-04-07 09:03:41
【问题描述】:

如何检查用户计算机中是否有特殊字符可用?

例如:♥ ♦ ♣ ♠ ♪ ♫ ¶

如果用户的浏览器不支持其中之一,则会出现一个矩形 (????) 而不是符号。

【问题讨论】:

  • 您检查特定字体。如果字体没有定义特定的字形,计算机不会在意。
  • 不确定,但我认为这与 HTTP 标头中的字符集有关,而不是浏览器或操作系统。
  • 如果您想检查特定字体,可以尝试以下技术:lucassmith.name/2009/05/…。除此之外,我认为除了查看用户屏幕来查看角色是否正确显示之外,没有其他简单的方法。
  • 我有个主意。我检查符号和矩形是否具有相同大小。
  • @DannyFox:如果我使用 LiberationSans 之类的东西而不是 Arial,我会得到不同的尺寸,但仍然具有正确的字符...

标签: javascript html special-characters symbols


【解决方案1】:

恐怕没有办法对其进行测试,而且即使一个字符可用,浏览器(尤其是 IE)也可能无法呈现它,这增加了复杂性。

另一方面,这些信息不会特别有用,除非在某种意义上说,如果不能将字符呈现为字符,您可以将字符动态更改为图像。

正确呈现字符的更好方法是编写样式表,以便它们选择合适的字体。这也解决了字符可能使用不适合整体设计的字体显示的问题,例如基本的copytext字体。

例如,如果您需要字符 ♥ ♦ ♣ ♠ ♪ ♫ ¶,请选择包含它们以及您需要的所有其他字符的字体。这可能归结为

body { font-family: Arial, sans-serif; }

【讨论】:

  • 它不起作用,因为这些符号不是字体系列的一部分。
  • @Danny Fox,请检查cs.tut.fi/~jkorpela/test/symbols.html8 如果它显示正常,我怀疑,那么问题根本不在于字体,而可能在其他地方,例如在字符编码中。在这种情况下,即使是常见的非 Ascii 字母,如“é”(直接输入时)也可能不起作用,这几乎不是字体问题。您还可以通过测试输入字符作为参考时发生的情况来验证这一点:♥ ♦ ♣ ♠ ♪ ♫ ¶
  • 我在某些设备上测试过,但是如果不支持该符号,那么引用也不起作用。
  • @Danny Fox,哪个设备? 所有符号都失败了吗?在 Android 上进行测试时,我很惊讶地发现八分音符 ♫ 没有出现在它的字体中,但话说回来,你能做什么?
  • 如果不支持就换成png图片
【解决方案2】:

可以使用 google 的 webfonts 使用不同的解决方案

http://www.google.com/webfonts

如果您看到一个角色,其他所有计算机 [使用最新浏览器] 都会看到它

【讨论】:

    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多