作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
将 JavaScript 字符串拆分为“字符”可以轻松完成,但如果您关心 Unicode(并且您应该关心 Unicode),就会出现问题。
JavaScript native 将字符视为 16 位实体 (UCS-2 or UTF-16),但这不允许 BMP (Basic Multilingual Plane) 之外的 Unicode 字符.
要处理 BMP 之外的 Unicode 字符,JavaScript 必须考虑“surrogate pairs”,而它本身并不这样做。
我正在寻找如何按代码点拆分 js 字符串,代码点是否需要一个或两个 JavaScript“字符”(代码单元)。
根据自己的需要,按codepoint拆分可能还不够,您可能希望按“grapheme cluster”拆分,其中簇是一个基本代码点,后跟所有非间距修饰符代码点,例如 combining accents and diacritics .
出于这个问题的目的,我不需要按字素簇进行拆分。
最佳答案
@bobince 的回答(幸运的是)变得有点过时了;你现在可以简单地使用
var chars = Array.from( text )
获取符合 astral/32bit/surrogate Unicode 字符的单代码点字符串列表。
关于javascript - 将 JavaScript 字符串拆分为代码点数组? (考虑到 "surrogate pairs"但不是 "grapheme clusters"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397316/
我是一名优秀的程序员,十分优秀!