整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML 字符集

HTML 中,正确的字符编码是什么?

HTML5 中默认的字符编码是 UTF-8。

这并非总是如此。早期网络的字符编码是 ASCII 码。

后来,从 HTML 2.0 到 HTML 4.01,ISO-8859-1 被认定为标准。

随着 XML 和 HTML5 的出现,UTF-8 也终于到来了,解决了大量的字符编码问题。

下面是关于字符编码标准的简短概述。


在开始的时候:ASCII

计算机信息(数字、文字、图片)在电子中是以二进制 1 和 0(01000101)进行存储的。

为了规范字母数字字符的存储,创建了 ASCII(全称 American Standard Code for Information Interchange)。它为每个存储字符定义了一个独特的二元 7 位数字,支持 0-9 数字,大/小写英文字母(a-z、A-Z)和一些特殊的字符,比如 ! $ + - ( ) @ < > 。

由于 ASCII 使用一个字节(7 位表示字符,1 位表示传输奇偶控制),所以它只能表示 128 个不同的字符。这些字符中有 32 个被保留作为其他控制目的使用。

ASCII 的最大的缺点是,它排除了非英文字母。

ASCII 今天仍然在广泛使用,尤其是在大型计算机系统中。

如需深入了解 ASCII,请查看完整的 ASCII 参考手册。


在 Windows 中:ANSI

ANSI(也称为 Windows-1252),是 Windows 95 及其之前的 Windows 系统中默认的字符集。

ANSI 是 ASCII 的扩展,它加入了国际字符。它使用一个完整的字节(8 位)来表示 256 个不同字符。

自从 ANSI 成为 Windows 中默认的字符集,所有的浏览器都支持 ANSI。

如需深入了解 ANSI,请查看完整的 ANSI 参考手册。


在 HTML 4 中:ISO-8859-1

由于大多数国家使用 ASCII 以外的字符,在 HTML 2.0 标准中,默认的字符编码更改为 ISO-8859-1。

ISO-8859-1 是 ASCII 的扩展,它加入了国际字符。与 ANSI 一样,它使用一个完整的字节(8 位)来表示 256 个不同字符。

如果 HTML 4 网页使用了不同于 ISO-8859-1 的字符集,则需要在 <meta> 标签中指定,如下所示:

实例

<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-8">

如需深入了解 ISO-8859-1,请查看完整的 ISO-8859-1 参考手册。


在 HTML5 中:Unicode(UTF-8)

由于以上所列的字符集是有限的,在多语言环境中是不兼容的,所以 Unicode 联盟(Unicode Consortium)开发了 Unicode 标准(Unicode Standard)。

Unicode 标准覆盖了(几乎)所有的字符、标点符号和符号。

Unicode 使文本的处理、存储和运输,独立于平台和语言。

HTML5 中默认的字符编码是 UTF-8。

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!

当浏览器在网页中检测到 ISO-8859-1 时,通常默认为 ANSI,因为除了 ANSI 有 32 个额外的字符这一点,其他方面 ANSI 基本等同于 ISO-8859-1。

HTML5 中默认的字符集是 UTF-8。

所有的 HTML 4 处理器都支持 UTF-8,所有的 HTML5 和 XML 处理器都支持 UTF-8 和 UTF-16。

技术等级】中级

本文重点讲解CSS文件中的字符集问题,同时展示了中文字体的英文名称应该如何使用。本文属于前端开发的中级教程,适合于有一定的CSS开发经验的学习者。

现在页面的CSS代码多采用CSS文件的方式链接使用,这主要是秉承了“标记”与“表象”相分离的设计原则,让CSS代码在一个独立的文件中呈现。

在CSS文件中同样会出现一定的中文,例如:中文注释,中文字体名称。这些中文内容,浏览器能够自动识别而不至于解释为乱码吗?

W3C为CSS文件准备了一个设置文件字符集的命令,该命令的书写格式如下:

CSS文件使用 @charset “utf-8”; 命令设置文件字符集

该句命令的使用有如下的规定:

  • 上述代码中@和charset之间不得有空格。

  • 所指定的字符集名称必须用双引号引住。

  • 命令末尾必须带有一个分号。

  • 该句命令在一个CSS文件中只允许出现一次。

  • 该句命令必须书写在CSS文件的第一行,前面不得有任何内容,也不得有任何注释。

该句是为CSS文件中出现的非ASCII码字符所设定的。为了让非ASCII字符不出现乱码或者字体中文名称起作用,必须设置该句。当然现在的许多编辑器在这方面处理的都比较好,设计人员无需书写该句,也能正确的实现非ASCII字符。

一、Sublime 中如何修改CSS字符集:

在编辑器Sublime 3中,如果要修改字符集,单纯的在 @charset 命令中改变字符集的名称是不行的。

首先,默认情况下,Sublime 3认定的字符集为 utf-8,从下图中指定的位置可以看出。

Sublime 3 中指定文件当前字符集的位置

图中箭头指向的位置表明当前的字符集设置为“utf-8”,图中第1句指定的字符集命令也是“utf-8”。这样,代码第4行的中文字体名称“汉仪综艺体简”就可以在页面中生效了。

如果想使用“gb2312”或者“big5码”字符集,则需要更改Sublime 3中指定的字符集。方法是在“文件”菜单下选择“设置文件编码”命令,从中找到想使用字符集,例如“GBK”,就表示“gb2312”字符集。

Sublime 3 中更改文件编码

如果没有对Sublime 3进行文件编码设置,只是更改了 @charset 命令中指定的字符集名,则在代码中使用的中文字体名称是不会生效的。

箭头指定的两个位置必须是一致的

二、中文字体的英文名称表示法:

如果能让中文字体的名称不再使用中文书写,而是使用英文书写,那么CSS文件中几乎就很少再会有非ASCII字符的出现了。所以,每一个中文字体都具备一个英文名称表示法。大家应该熟悉一些常用字体的英文名称表示法,这样就不用在CSS文件顶部注明 @charset 命令了。

下面,小海老师就为大家搜集了一些常用中文字体的英文表示法,希望大家在学习过程中注意知识的积累。

  • 宋体:SimSun

  • 仿宋:FangSong

  • 黑体:SimHei

  • 楷体:KaiTi

  • 幼圆:YouYuan

  • 隶书:LiSu

  • 微软雅黑:Microsoft YaHei

  • 华文细黑:STXihei

  • 华文中宋:STZhongsong

  • 华文仿宋:STFangsong

  • 花纹新魏:STXinwei

  • 华文行楷:STXingkai

  • 华文彩云:STCaiyun

  • 华文隶书:STLiti

如果您的电脑是 Apple Mac OS,还可能会用到下列字体:

  • 丽宋Pro:LiSong Pro Light

  • 丽黑Pro:LiHei Pro Medium

  • 苹果丽中黑:Apple LiGothic Medium

  • 苹果丽细宋:Apple LiSung Light

  • 标楷体:BiauKai

将上述中文字体的英文名称用在 font-family 属性中指定字体,就可以不用在书写 @charset 命令了。

文章预告

下一次小海老师会为大家讲解CSS中有关文本段落的属性,结合前面HTML的内容,可以对页面中的段落进行更为细致的调整。千万不要错过哦。

小海声明

如果大家希望得到更加全面的关于HTML和CSS技术讲解的内容,可以私信我,我会免费将小海老师自己编写的HTML和CSS的PDF教材发给你,帮助你在前端开发的道路上阔步前行。

符集 (字符编码):每一个字符分配一个代码或叫编号,如u+0041即代表A;

一种语言对应一个特定的字符集;

也可以有多个字体集来定义,如GB2312、GBK;

几种语言合并到一起也可以定义一个字符集,如CJK,即中国、日本、韩国;

全世界语言全部考虑进来的字符集Unicocde;

当你使用不同的字符集时,即使你的其他设置相同,文本在浏览器上的显示效果也会有区别;

HTML对语言、字符集、字体集的定义

<html xml:lang="en">; or <p xml:lang="en">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

font-family:"font-family:Arial, Helvetica, sans-serif";

通常来说,一种字体通常不会包括一种语言的全部字体,如果你只定义一种字体,没有字体定义的字体会显示为?;

1 serif:times new roman;一种具有衬线的字体。衬线是指字符笔划末端的装饰性细线,times new roman,georgia。seif字体最适合于印刷,因为即使在尺寸很小的时候这种字体依然容易阅读。但是,在呈现为屏幕上的像素时,衬线中细腻的点往往会有一些损失或粗粒化,所以一般来说在web上sans serif字体更容易阅读(不过,serif字体在尺寸比较大的情况下很漂亮)


sans serif:无衬线,是一种没有装饰曲线的字体,如Helvetica,arial;

2 monospace:courier,是一种所有字符包括标点都具有相同宽度的字体;

3 monospace:monaco,是一种所有字符包括标点都具有相同宽度的字体;(如果不是特别指定,一些字母所需的相对宽度是不等的,如iW,如果显示编码,则用等宽字体更直观;)

4 cursive:"brush script mt,是一种模仿手写体的字体;

5 fantasy:impact:一种装饰性的或高度花样化的字体

输入、输入法

为了将各种符号输入计算机或其他设备(如手机)而采用的编码方法。

多数的输入法软件是为汉语,韩语,和日语而设计,是因为键盘原在打字机时代为英文字母而设计,而中文、日文等文字却无法直接输入,所以必需集中输入法编码来输入相应的文字。在中国,为了将汉字输入计算机或手机等电子设备则需要中文输入法。汉字输入的编码方法,基本上都是采用将音、形、义与特定的键相联系,再根据不同汉字进行组合来完成汉字的输入的。

广义上的输入法还包括手写、语音、OCR扫描阅读器、速录机等输入方式。手写识别借着计算机的认字功能,由使用者的手写字体来辨别文字或其它符号。语音识别使用话筒和语音识别软件来辩别文字。OCR软件种类比较多,常用的比如清华OCR,在系统对图形进行识别后,系统会把不能肯定的字符标记出来,从而将文字或符号输入到电脑中。速录技术一般采用专用的速录键盘和设备,有国际上的专用速录设备,通常采用并击手术(即每次按键多个手指按下不同键位),可以实现每按一次就出来整一个单词。中文使用最广泛的速录技术是亚伟速录,可以实现每分钟600字以上的速度。

-End-