By author /

本网站的中文字体主要使用思源黑体与思源宋体。一种比较理想的分片方式可能是参照 Google Fonts,其分片方式似乎是采用机器学习按字符使用频率进行分片,因此每个页面所需加载的字体总数据量较小。不过为了了解下不同的字符集标准,本站采取按中日韩越四国的字符集标准进行分片:

  • 中国大陆的字符集标准:GB 2312(简体)、GB/T 12345(繁体)

  • 中国台湾的字符集标准:Big5

  • 日本的字符集标准:JIS X 0208

  • 韩国的字符集标准:KS X 1001、KS X 1002

  • 越南的字符集标准:TCVN 6056

按以上优先级顺序进行分片。每个字符集中若包含一级汉字和二级汉字,则一级汉字分为每个文件不超过 384 个字符,二级汉字分为每个文件不超过 256 个字符。对其它包含在字体中但不属于以上任一字符集的汉字,分为每个文件不超过 128 个字符。

对于简体中文最常用的 GB 2312,原本也是想按汉字使用频率分片的,但教育部发布的《通用规范汉字表》是按笔画排序……所以暂时并没有实现。可能之后会根据其他研究机构发布的汉字使用频率表来分片。

当然了你可能要问:为什么不直接用 Google Fonts 呢?原因是 Google Fonts 并不能用上最新的字体版本,而且不支持 OpenType 的 locl 特性,无法根据语言切换字形。例如以下分别是简体中文、台湾地区使用的繁体中文、香港地区使用的繁体中文、日文和韩文中的同一汉字,注意其字形的细微差别:

姿 姿 姿 姿 姿 姿