在 Swift 中转换 Unicode

Converting Unicode in Swift

我目前通过 API 调用收到如下字符串:

\n\nIt\U2019s a great place to discover Berlin and a comfortable place to come home to.

我想把它转换成这样更易读的东西:

It's a great place to discover Berlin and a comfortable place to come home to.

我看过 this post,但那是手动记下每次转换,可能会引入更多这些 un​​icode 标量字符。

我的理解是 \u{2019} 是 unicode 标量,但它的格式是 \U2019,我很困惑。是否有任何内置方法可以进行此转换?

假设您已经在拆分字符串并且可以单独获取有问题的格式:

func convertFormat(stringOrig: String) -> Character {
    let subString = String(stringOrig.characters.split("U").map({[=10=]})[1])
    let scalarValue = Int(subString)
    let scalar = UnicodeScalar(scalarValue!)
    return Character(scalar)
}

这会将字符串 "\U2019" 转换为 "\u{2019}" 表示的字符。

suggests using the NSString method stringByFoldingWithOptions

Swift String class 有一个概念叫做 "view" 可以让你在不同的编码下对字符串进行操作。它非常简洁,并且有一些视图可能会对您有所帮助。

如果您正在处理 Swift 中的字符串,请阅读 Mike Ash 的 this excellent post。他非常详细地讨论了字符串的真正含义,并为 Swift 2.

提供了一些有用的提示