以下示例取自 Strings and Characters documentation :

55357(十六进制的 U+D83D)和 56374(十六进制的 U+DC36)是形成 Unicode 标量 U+1F436 的代理对,它是 DOG FACE 字符。有什么办法可以去另一个方向吗?也就是说,我可以将代理对转换为标量吗?

我试过了

let myChar: Character = "\u{D83D}\u{DC36}"

但我收到了“无效的 Unicode 标量”错误。

This Objective C answerthis project 似乎是自定义解决方案,但是 Swift(尤其是 Swift 2.0+)中是否有任何内置的东西可以做到这一点?

最佳答案

有一些公式可以根据代理对计算原始代码点,反之亦然。来自 https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae :

关于ios - 如何在 Swift 中将代理对转换为 Unicode 标量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31282675/

10-13 03:43