结合附加符号

结合附加符号(combining diacritical marks)是指一类比较特殊的字符,这些字符一般不会单独存在,而是结合其他字符一同出现来表达不同的含义。汉语环境下,比较典型的例子就是汉语拼音的声调。

结合附加符号的 Unicode 范围是 0300-036F,字符数量总共有 112 个。其中,汉语声调字符包括:

名字 样式 Unicode编号 HTML实体代码 汉语声调
组合用长音符 ̄ U+0304 ̄ 阴平
组合用锐音符 ́ U+0301 ́ 阳平
组合用抑扬符 ̌ U+030C ̌ 上声
组合用抑音符 ̀ U+0300 ̀ 去声

Javascript 中使用 String.fromCharCode() 可以返回由指定的 UTF-16 代码单元序列创建的字符串。例如,String.fromCharCode(98, 97, 768, 32, 98, 97) 返回 bà ba,而 bà ba 的长度为 6。

结合附加符号有一个特点是可以附加在前一个字符上,这就导致前一个字符的实际显示高度可能会变化,例如:

cdm_inner

考虑到这种情况,在渲染文本的时候,如果文本有可能含有结合附加符号最好限制一下行高度和文本渲染区域的高度,防止影响区域外的内容。

编码格式

在计算机中,所有的数据在存储和运算时都要使用二进制数表示,例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,这就是编码。如果不同的计算机系统要想互相通信而不造成混乱,那么每个计算机系统就必须使用相同的编码规则。
编码是用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号的过程。为了保证编码一致性,需要有标准的编码格式规范,中文编码环境中常见的编码格式有 ASCII、GBK、UTF-8、Unicode 等。

8位 = 1字节
1字符 = 1~4字节(根据编码方式不同)

阅读更多