在 Swift 中转换 Unicode

Posted

技术标签:

【中文标题】在 Swift 中转换 Unicode【英文标题】:Converting Unicode in Swift 【发布时间】:2016-03-23 14:50:38 【问题描述】:

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

\n\n它\U2019 是探索柏林的好地方,也是一个舒适的地方 回家。

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

这是一个探索柏林的好地方,也是一个舒适的地方 家。

我查看了this 的帖子,但这是手动记下每次转换,并且可能会引入更多这些 un​​icode 标量字符。

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

【问题讨论】:

请参阅此答案***.com/a/31483262 【参考方案1】:

This answer 建议使用 NSString 方法stringByFoldingWithOptions

Swift String 类有一个称为“视图”的概念,它允许您在不同编码下对字符串进行操作。它非常简洁,有些观点可能对您有所帮助。

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

【讨论】:

【参考方案2】:

假设您已经在拆分字符串并且可以单独获取违规格式:

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

这会将字符串"\U2019" 转换为"\u2019" 表示的字符。

【讨论】:

以上是关于在 Swift 中转换 Unicode的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中强制转换 CLLocationDistance

无法在 swift 3.0 中转换正确的设备令牌

如何在 Swift 中转换 Objective-C TOCropViewController 委托方法?

在 Swift 中转换 Unicode

将swift 2视频代码转换为swift 3视频代码

将 UIImage 转换为 NSData 并在 Swift 中转换回 UIImage?