在 Swift 中转换 Unicode
Posted
技术标签:
【中文标题】在 Swift 中转换 Unicode【英文标题】:Converting Unicode in Swift 【发布时间】:2016-03-23 14:50:38 【问题描述】:我目前有一个通过 API 调用收到的字符串如下:
\n\n它\U2019 是探索柏林的好地方,也是一个舒适的地方 回家。
我想把它转换成这样更易读的东西:
这是一个探索柏林的好地方,也是一个舒适的地方 家。
我查看了this 的帖子,但这是手动记下每次转换,并且可能会引入更多这些 unicode 标量字符。
我的理解是 \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