以前深藏在 Core Foundation的字符串变形这次被带到了 NSString和 Swift String 中。这让 Cocoa 这项强大功能变得十分易用,因为不用再去理会桥接 CFStringRef所带来的麻烦。在Swift中直接调用 stringByApplyingTransform(transform: String, reverse: Bool) 方法,例如:
"🐶".stringByApplyingTransform(NSStringTransformToUnicodeName, reverse: false) // 输出 DOG FACE
"dog".stringByApplyingTransform(NSStringTransformLatinToHangul, reverse: false) //독
参数reverse是个Bool类型,当参数reverse为true时,可以反过来转换。
"독".stringByApplyingTransform(NSStringTransformLatinToHangul, reverse: true) //dog
下面介绍一下新 NSStringTransform*常量:
音译:
NSStringTransformLatinToKatakana 拉丁文转片假名(日语)
NSStringTransformLatinToHiragana 拉丁文转平假名(日语)
NSStringTransformLatinToHangul 拉丁文转韩语
NSStringTransformLatinToArabic 拉丁文转阿拉伯语
NSStringTransformLatinToHebrew 拉丁文转希伯来语
NSStringTransformLatinToThai 拉丁文转泰语
NSStringTransformLatinToCyrillic 拉丁文转西里尔语
NSStringTransformLatinToGreek 拉丁文转希腊语
NSStringTransformToLatin 转成拉丁文
NSStringTransformMandarinToLatin 普通话转拉丁文
NSStringTransformHiraganaToKatakana 平假名(日语)转片假名(日语)
全角半角
NSStringTransformFullwidthToHalfwidth 全角转半角
进制
NSStringTransformToXMLHex 转成XML十六进制字符
Unicode
NSStringTransformToUnicodeName 为Unicode字符命名
去掉重音和变音符
NSStringTransformStripCombiningMarks 去掉结合符号(重音和变音符)
NSStringTransformStripDiacritics 去掉变音符