一尘不染

使用Swift取消转义Unicode字符,即\ u1234

swift

在swift的xcode 6中使用JSON时出现特殊字符问题

我在Cocoa /目标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!

阅读 1629

收藏
2020-07-07

共1个答案

一尘不染

在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: 各個都

(最后一个参数使我Boolean陷入循环,直到我意识到在Swift中是UInt的类型别名-对于这些类型的方法,Objective-
C中的YES在Swift中变为1。)

2020-07-07