有没有办法确定Unicode字符浏览器的兼容性?

有没有办法确定Unicode字符浏览器的兼容性?,unicode,Unicode,有没有办法确定unicode兼容性,特别是与较新的集合的兼容性?我想使用Unicode 6.0字符❌ (❌;),但不确定它与哪些浏览器兼容。已在caniuse.com上搜索,但找不到兼容表 您可以检查表情符号是否受以下各项支持: 把它变成一个 将其大小调整为1×1,以获得其单像素平均值 将该平均值与渲染缺少表情符号时显示的方形字符时得到的平均值进行比较 类似这样的东西(只是一个起点,它只适用于Chrome): 函数emojiExists(emoji){ 试一试{ const can

有没有办法确定unicode兼容性,特别是与较新的集合的兼容性?我想使用Unicode 6.0字符❌ <代码>(❌;),但不确定它与哪些浏览器兼容。已在caniuse.com上搜索,但找不到兼容表

您可以检查表情符号是否受以下各项支持:

  • 把它变成一个

  • 将其大小调整为
    1×1
    ,以获得其单像素平均值

  • 将该平均值与渲染缺少表情符号时显示的方形字符时得到的平均值进行比较

  • 类似这样的东西(只是一个起点,它只适用于Chrome):

    函数emojiExists(emoji){
    试一试{
    const canvas=document.createElement('canvas');
    const context=canvas.getContext('2d');
    //设置字体基线、大小和系列:
    context.textb基线='top';
    context.font='100px无衬线';
    //缩放以获得表情符号的1 x 1表示
    //(只是所有像素的平均值):
    背景量表(0.01,0.01);
    //写下表情符号:
    fillText(表情符号,0,0);
    //仅用于测试。取消注释此行并注释context.scale(…);
    //document.body.appendChild(画布);
    //[0,0,0,42]是为显示的矩形字符返回的值
    //寻找缺失的表情符号:
    返回context.getImageData(0,0,1,1).data.join(',')!='0,0,42';
    }捕捉(错误){
    //画布可能不受支持。。。
    }
    }
    
    console.log(emojiExists('这不是浏览器问题。任何浏览器都可以处理该字符❌, 但是用户需要安装一个有形状的字体,否则他们会看到某种占位符

    U+274C十字标记的图示符❌ 是作为Windows 7附带的字体的一部分提供的,至少我这里有Android和Ubuntu版本,所以这还不错。如果你需要确定的话,你可以使用带有这种字形的嵌入式字体

    或者是非常古老且支持良好的U+00D7乘法符号×,或其他


    (有些情况下,浏览器,或者更具体地说,浏览器使用的文本布局引擎,除了字体支持外,还需要了解字符的正确呈现方式。但是,当字符作为复杂脚本(如阿拉伯语)的一部分添加时,字符会根据上下文改变形状。而不是关注简单的独立字符,如❌.)

    这可能更多的是字体问题,而不是浏览器问题。您可能会在fileformat.info上找到一些有用的工具:,。希望会有一些列表,例如caniuse…Unicode 6.0于2010年10月发布,因此可能有一些浏览器不支持…只是想知道是否有办法确定。除非浏览器使用自己的字体和字体渲染引擎(如Firefox),这是操作系统字体和渲染器的问题