语言环境、字体、编码之间有什么关系?

语言环境、字体、编码之间有什么关系?

我认为这些术语在 IME 等中很常用。

  • 区域设置
  • 字体
  • 编码

每个术语具体指的是什么?

我们也欢迎有关他们之间关系的实际知识。

答案1

区域设置:

“语言环境”保存着有关特定“区域”(彼此本地化)的人们关于在何处设置大数字的小数点、正确的日期格式是什么样的、标点符号出现在哪里等某些惯例的信息。给出的例子:

  • 1234567,89(SI 风格(法语版)、阿尔巴尼亚、比利时、波斯尼亚、巴西、保加利亚、捷克共和国、丹麦、爱沙尼亚、芬兰、法国、加拿大法语区、德国、希腊、匈牙利、意大利、拉丁欧洲、荷兰(非货币数字,见下文)、波兰、葡萄牙、罗马尼亚、斯洛伐克、斯洛文尼亚、西班牙、瑞典)
  • 1234567.89 SI 风格(英文版),澳大利亚,英语加拿大,中国
  • 1,234,567·89 爱尔兰、日本、韩国、马来西亚、新西兰、菲律宾、新加坡、台湾、泰国、英国、美国(较旧,通常为手写)
  • 1'234'567.89 瑞士(印刷、计算、货币、国际必需品、日常使用)

(取自http://en.wikipedia.org/wiki/Decimal_mark

编码:

“编码”是如何用第二个“系统”的单位来表示一个系统的“事物”的惯例。举例来说:你手里有 10 个鸡蛋。你无法在计算机中表示这些物理对象,你必须将其“编码”为计算机可以理解的东西。一种可能的编码是这样的:“10 个鸡蛋”(作为文本),你现在手里有 10 个鸡蛋的编码版本。

计算机的“单位”通常意味着“字节”。每个字节(通常)能够保存 0 到 255 的数字。如果您想表示更大的数字,您必须与其他人就表示(存储、检索)这些更大数字的模式达成一致。一种可能的方法是:

  • 为了存储最多 65535 个数字,我们使用 2 个字节
  • 检索数字的公式是(byte1 * 256) + byte2

瞧,这是一种“编码”,即如何用不同系统的不同单位(计算机的字节)来表示一个系统(自然数)的事物的约定。

另一个常见的话题是“如何存储文本”。现实世界中的人们使用许多不同的“绘画”来表达他们的想法(他们将他们的想法编码成单词、句子、较长的文本等)。大多数这些“绘画”的总和都收集在一种叫做unicode 表. 每个这样的“图形”被称为“字形”。您会发现这样的字形,例如“A”、“Ä”、“Ʌ”、“Ά”、“Ӑ”、“ڣ”、“㈱”、“⛽”、“✪”、“⬛”等。(如果您在某处看到“?”符号或空块:该字形不是您的“字体”的一部分,因此您的计算机不知道如何在屏幕上表示该字形;下一部分将详细介绍)。每个“字形”在该表中都有一个位置,因此,在计算机中表示文本的一种方法是列出该表中的位置:

104, 101, 108, 108, 111 -> 'h', 'e', 'l', 'l', 'o'

瞧,“编码文本”。有时该表中的位置不适合一个“字节”,那么您必须使用多个字节“编码”字形的位置,如上所述。

字体:

“字体”通常是一个容器文件(类似于 .zip),其中包含字体作者希望在该容器中包含的所有字形的图形表示。然后,计算机可以查找该字体中的字形,并使用每个字形的指令将字体表示/渲染/绘制到屏幕上。有多种方法可以做到这一点:

  • 您可以将每个字形定义为 10x10 像素,然后为每个字形填充像素(像素字体)
  • 您可以为每个字形存储一个配方,说明如何在每个可能的画布尺寸上绘制它(“从左上角开始,画一条线到底部中心,从底部中心画一条线到右上角” - >'V')(矢量字体)

相关内容