unicode - 理解术语——字符编码、字体、字形

标签 unicode encoding fonts internationalization globalization

我正在努力理解这些东西,以便我可以有效地在工作中实现项目的国际化。我刚刚开始,非常想从您的专业知识中了解我是否正确理解了这些概念。到目前为止,这是我从网上收集的内容的简化版本(据我所知):

字符编码 -> 告诉操作系统如何存储字符的规则集。例如,ISO8859-1、MSWIN1252、UTF-8、UCS-2、UTF-16。这些规则也称为代码页/字符集,它将单个字符映射到数字。显然 unicode 处理这个问题的方式与其他代码略有不同。即,它不是从数字(代码点)到字形的直接映射,而是将代码点映射到抽象的“字符”,该字符可能由不同的字形表示。[ http://www.joelonsoftware.com/articles/Unicode.html ]

字体 -> 这些是字符编码的实现。它们是不同格式(True Type、Open Type、Post Script)的文件,其中包含编码中每个字符到数字的映射。

字形 -> 这些是存储在字体文件中的字符的视觉表示。

基于以上理解,我有以下问题,

1)为了让操作系统理解编码,是否应该单独安装?或者安装支持编码的字体就足够了吗?。是否可以将网络中使用的 TCP 协议(protocol)类比为编码,因为它只是一组规则。 (这当然引出了一个问题,当我不安装它们时,操作系统如何理解这些网络协议(protocol):-p)

2)字体是否总是具有代码页的完整实现或只是其中的一部分?。有没有一种工具可以用来查看字体中的每个字符(.TTF 文件?)[Windows 字体查看器显示字体的样式,但不提供有关字体文件中字符列表的信息]

3)字体文件是否支持多种编码?有没有办法知道字体支持哪些编码?

我很抱歉问了太多问题,但我脑子里想了一段时间,但我找不到任何足够简单的网站让我理解。非常欢迎任何帮助/链接来理解这些东西。提前致谢。

最佳答案

如果你想了解更多,我当然可以为你指出一些资源:

Unicode、书写系统等

最好的信息来源可能是这本书 Jukka :

enter image description here
Unicode Explained

如果您点击链接,您还会找到这些书:

enter image description here
CJKV Information Processing - 详细处理中文、日文、韩文和越南文,但对我来说似乎很难阅读。

enter image description here
Fonts & Encodings - 我个人没有读过这本书,所以我不能告诉你它是否好。似乎是在主题。

国际化

如果您想了解 i18n,我可以提供无数的资源。但是让我们从可以节省您大量时间的书开始(您不会在一夜之间成为 i18n 专家,您知道):

Developing International Software
Developing International Software - 它可能已有 8 年历史,但仍然值得您花在它上面的每一分钱。也许编程示例与 Windows(C++ 和 .Net)有关,但 i18n 和 L10n 知识确实存在。我的一位同事曾经说过,这为他节省了大约 2 年的学习时间。据我所知,他并没有夸大其词。

您可能对有关该主题的一些博客或网站感兴趣:

Java 国际化

恐怕我不知道关于该主题的许多最新资源(即公开可用的资源)。我目前唯一知道的资源是 Java Internationalization trail .不幸的是,它相当不完整。

JavaScript 国际化

如果你正在开发 web 应用程序,你可能还需要一些与 js 中的 i18n 相关的东西。不幸的是,支持很差,但很少有库可以帮助解决这个问题。最著名的例子是 Dojo ToolkitGlobalize .
前者有点重,虽然支持 i18n 的许多方面,后者是轻量级的,但遗憾的是缺少很多东西。如果您选择使用 Globalize,您可能会对 Jukka 的最新书籍感兴趣:

Going Global with JavaScript & Globalize.js
Going Global with JavaScript & Globalize.js - 我读了这篇文章,据我所知,它很棒。它没有涵盖您最初要求的主题,但仍然值得一读,即使是关于如何使用 Globalize 的实践示例也是如此。

关于unicode - 理解术语——字符编码、字体、字形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619234/

相关文章:

python-3.x - 为什么我无法将\xDF (ß) 解码为 UTF-8?

macos - OSX API CTFontDrawGlyphs() 不会返回 AppleColorEmoji 字形的正确 alpha 值

python - 使用 PIL(Python 图像库)编写带有变音符号 ("nikud"的文本,发声标记)

node.js - Gmail API 不遵守主题中的 UTF 编码

C# 文件编码类型改变了吗?

java - 如何获取列表中字符串的索引

html - Google(静态)字体网址会更改吗?

搜索字符串时python编码错误

python - Django 1.4 - django.db.models.FileField.save(filename, file, save=True) 产生非 ascii 文件名错误

django - 关于 django url 中字符的简单问题