如何检测JavaScript不支持的字符(例如“��”)?

时间:2019-10-04 16:01:00

标签: javascript unicode

有时候人们用奇怪的东西(例如奇怪的Unicode组合)填写表格,以显示特殊字体。

例如:

???

但是,有时客户端不支持这些字符,从而导致显示“?”。

如何使用JavaScript检测失败?这可能吗?

谢谢

2 个答案:

答案 0 :(得分:0)

最好的方法是用另一种方法做

  • 您选择网络字体,然后选择允许的范围。 Webfont描述为您提供了允许的字符列表,通常设计人员会进行增强,并且从不删除字形。

  • 您在表单中仅允许使用此类字符。

否则,将取决于Web浏览器。如果同一用户在不同的浏览器中(例如移动设备与计算机),则可能会看到不同的结果。因此,最好的方法(IMHO)是从渲染中完全删除客户端字体,因此您可以使用webfont显式指定字形(以及显示方式)。这与客户端/网络浏览器无关(但在非常老的客户端上)

答案 1 :(得分:-6)

您可以检测到符合问题中给出的用例的非字符。

use utf8;
use Unicode::UCD qw(charinfo);
if (defined charinfo ord '?') {
    print 'is a character';
} else {
    print 'is a non-character';
}

有关JavaScript UCD库,请参见https://npmjs.com/search?q=ucd