关于字体编码的一些知识,并带大家制作一套字体。(上)

简介: 关于字体编码的一些知识,并带大家制作一套字体。

w3schools 官网文档中介绍的常见符号  点击查看


关于编码的一些知识供大家查阅 点击查看


常见的一些编码知识,只需要了解一下就行,制作字体包时会用到。



0021-007F 、 ASCII Punctuation  点击查看


image.png





0030-0039、ASCII Digits Unicode字符 点击查看


image.png





00A2-00A5、 日元磅和美分:Yen, Pound and Cent  点击查看


image.png





Dingbats字符、印刷符号 (Dingbats)字符


image.png





简体中文(GB2312) gb2312 编码相关信息 查看各国语言点击看简体中文


可以看到想设计一套中文字体大概有23940个编码,体积量很大!



image.png





「&#x 」和「 &#」 开头的是什么编码


类似这样的字符&#dddd&#xhhhh&#nameHTM,这些字符是HTMLL、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。


以 HTML 为例,这三种转义序列都称作字符参考character reference:


  • 前两种是数字字符引用(英文:numeric character reference(NCR)),数字取值为目标字符的 Unicode code point;


十进制:decimal (dec),取值范围:8192-8303,格式「&#」开头的后接十进制数字,如 &#0048


十六进制:hexadecimal (hex),取值范围: 2000-206F,「&#x」开头的后接十六进制数字,如 &#X030


  • 后一种「&#name」是 字符实体参考character entity reference,后接预先定义的 entity 名称,而 entity 声明了自身指代的字符,如 空字符&#NUL

    image.png


什么是数字字符和实体字符



  • 数字字符


numeric character reference(NCR),直译就是数字字符引用。


一个Numeric Character Reference编码是由一个与号(&)跟着一个井号(#),然后跟着这个字符的Unicode编码值,最后跟着一个分号组成的,就像上面的例子&#dddd

有了数字字符引用,就可以在网页中显示Unicode字符了,不用考虑html文件本身的编码,因为数字字符引用只用到ASCII字符集里的字符。所以,即使在gb2312编码的网页中,也可以用NCR显示埃及的象形文字了。

  • 实体字符


在Node 层利用 cheerio 解析网页时,输出的中文内容都是以 &#x 开头的一堆像乱码一样的东西,将这一堆“乱码”保存成网页后,通过浏览器打开又可以正常显示。这些乱码,学名是实体编码“entity code”。

这些实体字符是预留的,格式比较语义化,容易记忆,浏览器会将它们视作标签。

比较常见的有:


| 字符    | 转义序列 | 十六进制|
| --------- | ---------|  ---------|
| 空格「 」|   | -  |
| 小于号「<」| &lt;| - | | 大于号「&gt;」|>| - | | … || - | | tab (一个空白=2个字符宽度)|&emsp|&#8195`  |


自定义一套字体包



应用场景:


在移动端和web端设计时,一些用到数据的地方,用某些特定的字体,比如DIN字体,视觉效果比较好看,但是又不想安装很大的字体包,我们可以把数字0-9和常见的标点符号字提取出来,单独做成字体包,减少APP的体积。当然也可以自己动手设计一套。


优点:体积小,可自定义设计




相关文章
|
并行计算 算法 C++
统一内存统一内存的基本概念和使用
统一内存统一内存的基本概念和使用
2194 0
统一内存统一内存的基本概念和使用
|
存储 缓存 NoSQL
分布式锁原理与实现(数据库、redis、zookeeper)
分布式锁可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。
分布式锁原理与实现(数据库、redis、zookeeper)
|
9月前
|
机器学习/深度学习
过程奖励模型PRM成版本答案!谷歌DeepMind全自动标注逐步骤奖励PAV,准确率提升8%
研究团队提出了一种新的过程奖励模型(PRM),通过衡量每一步骤的进展来改进大型语言模型(LLM)的推理能力。与仅在最后提供反馈的结果奖励模型(ORM)不同,PRM能在多步骤推理中逐步提供反馈,从而改善信用分配。研究引入了过程优势验证者(PAV),用于预测证明策略下的进展,显著提升了测试时间搜索和在线强化学习(RL)的效率与准确性。实验表明,PAV相比ORM提高了8%以上的准确性和5至6倍的样本效率。该方法在Gemma2模型上得到了验证,并展示了在解决复杂问题上的潜力。尽管成果显著,但仍需进一步研究以优化证明策略的设计和减少拟合误差。
332 97
|
12月前
|
SQL XML Java
Mybatis的原理和MybaitsPlus
这篇文章对比分析了Mybatis和Mybatis Plus的特点与底层实现机制,探讨了两者之间的差异及各自的优势。
337 0
|
11月前
|
人工智能 自然语言处理 IDE
💡通义灵码:让每个人都能成为软件开发的「超级个体」
作为阿里巴巴达摩院推出的先进大模型技术,通义灵码不仅具备强大的自然语言理解和生成能力,更支持多种编程语言和框架,能够广泛适用于不同的开发场景。这意味着,开发者可以借助通义灵码,通过自然语言进行代码生成、自动化测试、文档编写等,甚至还可以根据需求生成完整的项目结构和业务逻辑。
670 9
💡通义灵码:让每个人都能成为软件开发的「超级个体」
|
存储 缓存 C语言
【C/C++ 库的动态链接】深入理解动态链接器:RPATH, RUNPATH与$ORIGIN
【C/C++ 库的动态链接】深入理解动态链接器:RPATH, RUNPATH与$ORIGIN
780 0
|
算法 调度
基于CCG算法的IEEE33配电网两阶段鲁棒优化调度matlab
基于CCG算法的IEEE33配电网两阶段鲁棒优化调度matlab
解决pip install安装速度慢的问题
我们在编程过程中,会经常遇到要下载包的问题,而下载包常用的就是pip命令,但是很多情况下直接下载速度比较慢,我们可以使用镜像进行加持