处理HTML表单中的Unicode字符

时间:2014-02-06 17:08:45

标签: html unicode

我在使这个unicode字符在HTML表单中正确显示时遇到问题。 Details of the character are here

它反而呈现。我的HTML看起来像:

<!DOCTYPE html>
<html>
    <head>
        <style>
            input {
                font-family: 'Arial Unicode MS'
            }
        </style>
    </head>
    <body>
        <input type="text" value="" />
    </body>
</html>

该字体似乎在记事本中正确呈现字符,所以我不确定为什么它不会在网页中正确呈现。

该页面的Content-Type标题为text/html; charset=utf-8。这似乎只会影响谷歌浏览器(在32.0.1700.107版本上测试)。 Screenshot is here

1 个答案:

答案 0 :(得分:4)

问题(U + 1F604未显示,即使在包含带字形的字体的系统中也会出现;而是出现一个小矩形)是由Chrome中的字体渲染错误引起的,它也影响普通文本,而不是只是输入框中的字符。修复是在CSS中指定包含字符的字体系列列表:

input { font-family: DejaVu Sans, Symbola, Quivira, Segoe UI Symbol, UniversaliaPlus }

根据风格偏好,根据需要对列表进行重新排序,尽管包含U + 1F604的字体与开口和微笑眼睛的微笑似乎对这个或多或少的标志性角色具有相当相似的字形。如果找到包含它们的其他字体,请将它们添加到列表中。

请注意,许多用户的计算机没有支持U + 1F406的字体。一些现代Windows系统有Segoe UI Symbol,许多Linux发行版都有DejaVu字体(但是最近在版本2.33中,DejaVu Sans中添加了U + 1F406的字形。

一般背景和其他信息:Guide to using special characters in HTML

注意:我已经回滚了一些编辑,该编辑在某些字体系列名称(如DejaVu Sans)周围添加了引号。这些引号是需要(除了具有一些特殊字符的名称),CSS3 rules或其他;使用它们是编码风格的问题。如果您更喜欢使用它们,我会建议一致性,将所有字体系列名称(如serif之类的通用名称除外)放在引号中。