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

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

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

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

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

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

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

【问题讨论】:

标签: string swift unicode scalar


【解决方案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" 转换为"\u{2019}" 表示的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多