Unicode字符(六边形)在某些计算机上不显示(Unicode character (hexago

2019-10-19 17:53发布

我有一个巨大的问题。 我刚刚更新了我的网站主页,显示一个Unicode字符六角:⬢ ⬢ 又名U + 2B22
我做了200像素的大,并用文本填充它。 它看起来不错,我的电脑上正常工作。 随着双方的Internet Explorer(win8的)和Firefox 28。
我测试了5台不同的计算机上,并没有在那里工作! 测试与Firefox 28和每个设备上的Internet Explorer(WIN7)和一个计算机甚至与最新的铬上。

所以我在做什么错? 这怎么可能,它的作品在我的FF 28和FF使用28它没有5台不同的设备?

我已经尝试过:

<?php header('Content-Type: text/html; charset=utf-8'); ?>  

在HTML直接:

meta http-equiv="content-type" content="text/html; charset=utf-8" 

是U + 2B22不是UTF-8的一部分?

自己尝试一下这里,滚动至最底部的: http://jtauber.github.io/articles/css-hexagon.html
对于我的电脑,它看起来是这样的: http://250kb.de/u/140401/j/RzN1lYTL8fLJ.jpg
在其他设备上,它看起来像这样: http://250kb.de/u/140401/p/VEeerGhyv4lM.png

我感谢所有帮助!

Answer 1:

字符U + 2B22 BLACK HEXAGON仅包含在几个字体。 这些字体都没有自带的Windows或与其他广泛使用的软件,所以在大多数计算机上,也包含它没有字体。 此外,浏览器可能无法呈现,即使系统中的某些字体都有它的性格。 对于一些更普遍的解释,看到我的指南在HTML中使用特殊字符 。

在这种情况下,字体设置为font-family: "Helvetica Neue", Arial, Helvetica 。 这些字体都没有包含字符,所以每个浏览器尝试在系统中使用其他字体,浏览器相关的命令。 在自己的电脑,你有一个包含字符的字体。 您可能已经下载并安装它,或者它可能有一些软件一起走

你可以做的是,或者,

a)指明,在font-family声明,已知含有该字符的字体列表。 这将有助于防止浏览器的问题没有找到字体,但这没有多大关系。

b)中使用的可下载的字体(Web字体,通过@font-face )。 这主要是矫枉过正,如果你只是想为基本非文本使用一个字符。 包含U + 2B22字体一般都很大。

c)中使用的图像代替,可能作为背景图像。 这将是这里的理性选择,特别是因为你不会用U + 2B22作为文本字符,但作为一种背景。

关于这个问题:“是U + 2B22不是UTF-8的一部分吗?”,人物是不是真的UTF-8的一部分。 取而代之的是,UTF-8是用于字符的传输编码,和所有Unicode字符(和,而且,所有Unicode代码点)具有以UTF-8表示。 此外,所提到的页中不包含U + 2B22本身,而是作为字符参考&#x2b22; 和这部作品的字符编码的独立。 因此,这不是一个编码的问题,但字体的问题。



Answer 2:

在它不工作,这些计算机没有安装的字体包含这个特殊字符的字形。 就这些。

解决方案将包括不依赖于具有安装这样的特殊字符的字体的用户,为他们提供的Web字体替代(你可能必须创建),或使用图像,SVG或帆布代替。



文章来源: Unicode character (hexagon) not displayed on some computers