我正在努力理解这些东西,以便我可以有效地在工作中实现项目的国际化。我刚刚开始,非常想从您的专业知识中了解我是否正确理解了这些概念。到目前为止,这是我从网上收集的内容的简化版本(据我所知):
字符编码 -> 告诉操作系统如何存储字符的规则集。例如,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 :
如果您点击链接,您还会找到这些书:
CJKV Information Processing - 详细处理中文、日文、韩文和越南文,但对我来说似乎很难阅读。
Fonts & Encodings - 我个人没有读过这本书,所以我不能告诉你它是否好。似乎是在主题。
国际化
如果您想了解 i18n,我可以提供无数的资源。但是让我们从可以节省您大量时间的书开始(您不会在一夜之间成为 i18n 专家,您知道):
Developing International Software - 它可能已有 8 年历史,但仍然值得您花在它上面的每一分钱。也许编程示例与 Windows(C++ 和 .Net)有关,但 i18n 和 L10n 知识确实存在。我的一位同事曾经说过,这为他节省了大约 2 年的学习时间。据我所知,他并没有夸大其词。
您可能对有关该主题的一些博客或网站感兴趣:
- Sorting it all out - Michael Kaplan 的博客,经常讨论 Windows 平台上的 i18n 支持
- Global by design - John Yunker正在积极向本网站发布一些国际化知识
- Internationalization (I18n), Localization (L10n), Standards, and Amusements - 也称为 i18nguy,您可以在该网站上找到更多链接、教程和内容。
Java 国际化
恐怕我不知道关于该主题的许多最新资源(即公开可用的资源)。我目前唯一知道的资源是 Java Internationalization trail .不幸的是,它相当不完整。
JavaScript 国际化
如果你正在开发 web 应用程序,你可能还需要一些与 js 中的 i18n 相关的东西。不幸的是,支持很差,但很少有库可以帮助解决这个问题。最著名的例子是 Dojo Toolkit和 Globalize .
前者有点重,虽然支持 i18n 的许多方面,后者是轻量级的,但遗憾的是缺少很多东西。如果您选择使用 Globalize,您可能会对 Jukka 的最新书籍感兴趣:
Going Global with JavaScript & Globalize.js - 我读了这篇文章,据我所知,它很棒。它没有涵盖您最初要求的主题,但仍然值得一读,即使是关于如何使用 Globalize 的实践示例也是如此。
关于unicode - 理解术语——字符编码、字体、字形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619234/