聊聊 Unicode 中的组合字符(Combining Character)

您所在的位置:网站首页 合并字符的效果 聊聊 Unicode 中的组合字符(Combining Character)

聊聊 Unicode 中的组合字符(Combining Character)

2024-07-16 21:41| 来源: 网络整理| 查看: 265

聊聊 Unicode 中的组合字符(Combining Character)

2019-09-03 by Dron

它是什么?

在字体排印学中,组合字符(Combining Character)是用来改变其它字符所用的字符,这些字符可以添加到目标字符周围或覆盖目标字符,例如汉语拼音字母「ü」上面的两个小点,或「á」、「à」字母上面的音标。

组合字符通常的用法为:将组合字符 置于需要修饰的目标字符后边,使目标字符被渲染(或打印)成相应结果。

组合字符在 Unicode 统一码中存在多个区块,编码范围主要有:

组合用附加符号(Combining Diacritical Marks):区间从 U+0300 到 U+036F 共 80 字。组合用附加符号补集(Combining Diacritical Marks Supplement):区间从 U+1DC0 到 U+1DFF 共 64 字。组合用记号(Combining Diacritical Marks for Symbols):区间从 U+20D0 到 U+20FF 共 48 字。组合用半形符号(Combining Half Marks):区间从 U+FE20 到 U+FE2F 共 16 字。

尽管组合字符的作用在 HTML 面前显得黯然失色,它在各种纯文本环境下还是很有用的,比如可以在朋友圈上或者聊天窗口中发送包括组合字符的消息以彰显你的个性。

组合字符举例

由于 Chrome 浏览器对「作用于中文上的组合字符」支持不好,以下示例请换用 Safari 浏览器查看。

目前我也没有太好办法解决 Chrome 下的渲染问题,如果你有什么好的办法,希望你告诉我。

拼音音标āáăà

注意,以上音标是在每个字母 a 右边分别增加组合字符,它们分别是:U+0304、‌U+0301、U+0306 和 U+0300,下同。

'āáăà'.length === 8; // true 'ā'.length === 2; // true

当然,Unicode 中也提供带音标的拉丁文(单字节),这样就不必使用组合字符来标记音调了,在统一码 拉丁文补充1、拉丁文扩展A 及 拉丁文扩展B 中可以找到它们。

划线和点划线这̅句̅话̅加̅了̅上̅横̅线̅ U+0305 这̲句̲话̲加̲了̲下̲横̲线̲ U+0332 这̿句̿话̿加̿了̿双̿上̿横̿线̿ U+033F 这̳句̳话̳加̳了̳双̳下̳横̳线̳ U+0333 这⃨句⃨话⃨加⃨了⃨三⃨点⃨下⃨划⃨线⃨ U+20E8打叉和星星这̽句̽话̽加̽了̽上̽叉̽ U+033D 这͓句͓话͓加͓了͓下͓叉͓ U+0353 这⃰句⃰话⃰加⃰了⃰上⃰星⃰号⃰ U+20F0 这͙句͙话͙加͙了͙下͙星͙号͙ U+0359特殊这͚句͚话͚加͚了͚下͚双͚圆͚圈͚ U+035A 之͛字͛型͛ U+035B加圈或加框爱的魔力转⃝圈⃝圈⃝ U+20DD 不要试图用那些条⃞条⃞框⃞框⃞来约束我 U+20DE题外话

Unicode 中还有挺多其它好玩的东西,比如我之前发过的一篇关于 Unicode 零宽空白字符的文章《“短”化你的代码》,如果你也有其它好玩的点子,可以评论中与我交流。

参考资料Unicode ConsortiumUnicode 字符表Test for Unicode support in Web browsers

程序为本文自动提取的无责任关键字:

字符组合组合字符目标字符拉丁文

后一篇:一组你值得拥有的 Markdown 中混用 HTML 案例

© 2018 ucren.com 浙ICP备19046117号



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3