在 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,但那是手动记下每次转换,可能会引入更多这些 unicode 标量字符。
我的理解是 \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.
提供了一些有用的提示
我目前通过 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,但那是手动记下每次转换,可能会引入更多这些 unicode 标量字符。
我的理解是 \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}"
表示的字符。
stringByFoldingWithOptions
。
Swift String
class 有一个概念叫做 "view" 可以让你在不同的编码下对字符串进行操作。它非常简洁,并且有一些视图可能会对您有所帮助。
如果您正在处理 Swift 中的字符串,请阅读 Mike Ash 的 this excellent post。他非常详细地讨论了字符串的真正含义,并为 Swift 2.
提供了一些有用的提示