某些计算机上未显示Unicode字符(六角形)

For*_*vin 1 html unicode device utf-8

我有一个很大的问题.我刚刚更新了我的网站主页,显示了一个unicode六边形字符:⬢ ⬢又名U + 2B22
我把它变成200px大,并用文字填充.它看起来不错,在我的电脑上工作正常.使用Internet Explorer(win8)和Firefox 28.
我在5台不同的计算机上进行了测试,并且在那里无法运行!在每台设备和一台计算机上使用Firefox 28和Internet Explorer(win7)进行测试,即使使用最新的Chrome.

那么我做错了什么?它怎么可能在我的FF 28和5个不同的设备上使用FF 28它不可用?

我已经尝试过:

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

并直接在HTML中:

meta http-equiv="content-type" content="text/html; charset=utf-8" 
Run Code Online (Sandbox Code Playgroud)

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

我感谢任何帮助!

Juk*_*ela 6

字符U + 2B22 BLACK HEXAGON仅包含在少量字体中.这些字体都不附带Windows或其他广泛使用的软件,因此在大多数计算机中,没有包含它的字体.此外,即使系统中的某些字体具有该字符,浏览器也可能无法呈现该字符.有关更一般的解释,请参阅我在HTML中使用特殊字符的指南.

在这种情况下,字体设置是font-family: "Helvetica Neue", Arial, Helvetica.这些字体都不包含该字符,因此每个浏览器都尝试以依赖于浏览器的顺序使用系统中的其他字体.在您自己的计算机中,您有一个包含该字符的字体.您可能已经下载并安装了它,或者它可能已经附带了一些软件

你可以做的是,或者,

a)在font-family声明中指定已知包含该字符的字体列表.这可以帮助解决浏览器无法找到字体的问题,但这并不重要.

b)使用可下载的字体(网络字体,通过@font-face).如果您只想要一个基本上非文本使用的字符,那么这通常会有点过分.包含U + 2B22的字体通常很大.

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

关于"U + 2B22不是utf-8的一部分吗?"的问题,字符并不是utf-8的一部分.相反,utf-8是字符的传输编码,所有Unicode字符(以及所有Unicode代码点)在utf-8中都有表示.此外,提到的页面不包含U + 2B22,但作为字符引用&#x2b22;,这与字符编码无关.因此,这不是编码问题,而是字体问题.