01 / 30 秒回忆
字符串反转的单位决定结果是否仍然可读。直接按 UTF-16 code unit 反转会拆坏代理项;按 code point 可以保住 emoji 基本字符,但组合字符和连接序列还需要字素簇分段。
TOOLS / 嵌入式
按 Unicode 码点或用户可见字符反转文本,避免破坏代理项。
快速理解
输入
输出
知识回忆
概念、关系和工程边界。
01 / 30 秒回忆
字符串反转的单位决定结果是否仍然可读。直接按 UTF-16 code unit 反转会拆坏代理项;按 code point 可以保住 emoji 基本字符,但组合字符和连接序列还需要字素簇分段。
02 / 核心关系
code point 模式使用 Array.from(text) 后反转;字素簇模式使用 Intl.Segmenter(granularity=grapheme) 后反转,每个分段作为一个用户可见单位。
03 / 使用判断
做算法练习或协议字段反排时先选 code point;处理用户名、emoji 和带组合音标的显示文本时优先用字素簇,并确认浏览器支持情况。
使用 split("") 反转包含代理项的文本,或把“用户看到的一个字符”简单等同于一个 code point。复杂脚本的字素边界也不能手写几条规则代替。
反转只是字符串变换,不代表协议中的字节反序;跨语言系统还要明确编码、规范化形式和是否允许改变组合字符顺序。