IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    JavaScript Unicode 归一化

    Moxuy发表于 2023-10-12 14:33:32
    love 0

    你看到的“⼀”不是真正的“一”

    1
    '⼀' === '一' // false

    转Unicode之后:
    ⼀:\u2f00
    一:\u4e00

    发现两个一的Unicode是不一样的,这两个字符分别为部首「U+2F00 ⼀」和汉字「U+4E00 一」,也就是说前者是符号,后者是汉字,具体可参阅为什么在字库里存在一些「长得一样」的文字? - 知乎。

    如何解决

    可以使用String对象下的normalize函数,normalize参数有四种

    • NFC:正则分解,然后进行正则构成
    • NFD:仅正则分解
    • NFKC:兼容性分解,然后进行规范性组成
    • NFKD:兼容性分解

    返回值:含有给定字符串的 Unicode 规范化形式的字符串。

    具体可参阅String.prototype.normalize() - JavaScript | MDN

    可使用如下方法将符号转义为正常的汉字

    1
    '⼀'.normalize('NFKC') === '一' // true


沪ICP备19023445号-2号
友情链接