使用Swift来取消unicode字符,即 u1234
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Swift来取消unicode字符,即 u1234相关的知识,希望对你有一定的参考价值。
在使用swift在xcode 6中使用JSON时,我遇到了特殊字符的问题
我在Cocoa / objective C中找到了这些代码来解决转换重音的一些问题但却无法在Swift中运行。有关如何使用它的任何建议? ......最好的替代建议也很酷......
谢谢
NSString *input = @"\u5404\u500b\u90fd";
NSString *convertedString = [input mutableCopy];
CFStringRef transform = CFSTR("Any-Hex/Java");
CFStringTransform((__bridge CFMutableStringRef)convertedString, NULL, transform, YES);
NSLog(@"convertedString: %@", convertedString);
// prints: 各個都, tada!
答案
它在Swift中非常相似,但你仍然需要使用Foundation字符串类:
let transform = "Any-Hex/Java"
let input = "\u5404\u500b\u90fd" as NSString
var convertedString = input.mutableCopy() as NSMutableString
CFStringTransform(convertedString, nil, transform as NSString, 1)
println("convertedString: (convertedString)")
// convertedString: 各個都
(最后一个参数引发了我的循环,直到我意识到Swift中的Boolean
是UInt的类型别名 - 对于这些类型的方法,Objective-C中的YES在Swift中变为1。)
另一答案
斯威夫特3
let transform = "Any-Hex/Java"
let input = "\u5404\u500b\u90fd" as NSString
var convertedString = input.mutableCopy() as! NSMutableString
CFStringTransform(convertedString, nil, transform as NSString, true)
print("convertedString: (convertedString)")
// convertedString: 各個都
另一答案
Swift 4 String扩展
extension String {
var unescapingUnicodeCharacters: String {
let mutableString = NSMutableString(string: self)
CFStringTransform(mutableString, nil, "Any-Hex/Java" as NSString, true)
return mutableString as String
}
}
以上是关于使用Swift来取消unicode字符,即 u1234的主要内容,如果未能解决你的问题,请参考以下文章
如何在具有可变宽度 Unicode 字符的 Swift 字符串上使用 NSRegularExpression?
JSON字符串上的Unicode字符与swift 3和Alamofire