DrS*_*ove 13 fonts character-encoding
我的意思是,字体是否必须支持每种字符编码?还是字符编码必须支持每种字体?
Unicode 字体是什么意思?它们是仅支持Unicode 而它们不支持例如 windows-1252 的字体吗?
从基础开始,一切都基于 US-ASCII,这是一个 7 位代码,在集合中有 128 个代码点,编号为十六进制 00 到 7F 或十进制 0-127。这映射到控制代码、英文字母数字和基本标点符号
为 8 位代码(字节)添加 1 位给我们另外 128 个代码点或扩展 ASCII。
早期需要字符集/代码页来更改高 128 位中的代码点如何映射到字符以覆盖您希望表示的特定语言的字母表。这对于大多数西欧语言来说相当有效。ISO 8859-1/Latin-1 就是这种字符集的一个例子。另一个是 Windows-1252,它对 ISO 8859-1 进行了更改,以帮助它涵盖更多或不同的字符。
具有更复杂字符集的语言(如中文、日语和韩语)超出了 256 个代码点集的能力,并使用双字节代码来启用它们的表示。
Unicode UTF-8 是一种多字节字符编码方案(1-4 个字节),向后兼容 ISO 8859-1/Latin-1,即其前 128 个字符。它有超过 100 万个代码点的空间,这意味着每个代码点实际上可以代表一个字符,这与扩展 ASCII 所做的混淆不同,这意味着一个代码点映射到不同的字符,具体取决于字符集/代码页/编码。
字体是映射到代码点并在视觉上表示字符的字形。字体的内容取决于它最初打算涵盖的语言。您可以使用字符映射来查看字体中包含哪些字形。
Unicode 字体不一定涵盖所有代码点,您需要查看它们的用途。例如,在 Windows 7 中,启动Character Map并在 Calibri 中查看字符,然后将它们与 Ebrima、Meiryo 和 Raavi 进行比较。请注意,它们有很大不同,因为每个都是针对不同的地理区域量身定制的。
至于 Unicode 字体和 Windows-1252 字符集,Windows 使用映射表将 Windows-1252 转换为 Unicode,其中 Windows-1252 字符中的某些字符与 ISO 8859-1 不匹配。设置可能不显示。
字符集是字符的集合,每个字符都分配有一个编号。
一个众所周知的字符集是 ASCII。这是一组从0到127编号的128个字符。这些数字都可以用7位表示(所以是7位字符集)
大多数但并非所有其他字符集都包含具有相同编号的 ASCII 集。与 ASCII 不同的字符集示例包括 EBCDIC。在 ASCII 上也有欧洲变体,在某些位置具有不同的字符(例如包含 £)
Unicode 等大字符集超过一百万个字符,每个字符需要三个或四个字节才能容纳分配给字符的大范围数字。相反,他们使用的系统允许将该数字“编码”为一个、两个、三个或更多字节。使用 UTF-8 编码方案时,与 ASCII 字符相同的字符碰巧用与 ASCII 相同字节值的单个字节进行编码。
在文件中存储文本时使用上述编码。
字体是一组字符的视觉表示(即形状)的特定设计。这些形状称为字形。一种字体可能有多个字形用于一个字符(考虑“a”)。它可能具有称为连字(例如“ff”或“fi”)的字符对的字形。因此,在字体中设计字形的字符集通常与众所周知的字符集中的字符集不同(字体通常不包括 ASCII 控制字符的字形)。
在计算机的上下文中,字体是指包含根据某种编号方案(通常与任何众所周知的字符集中的编号不同)排序的字形的文件。历史上有位图字体表示字体的特定大小(以像素或点为单位)。目前大多数字体使用数学曲线来描述字形,因此可以缩放以表示任何大小的字体。
当你显示一个文本文件时,计算机必须被告知(或猜测)文件中使用的编码。然后它将使用不同的编号(例如 Unicode 的 16 位变体)来表示内存中的文本,然后它将使用字体文件中的信息将内部表示映射到字体文件中使用的编号(编码)。
| 归档时间: |
|
| 查看次数: |
3986 次 |
| 最近记录: |