3

我使用nsurlsession并接收了带有 GB-2312 编码的 nsdata。如何将编码从 GB-2312 更改为 UTF-8。

我试过这段代码

let enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)
var result = NSString(data: data, encoding:enc)!

但它有一个错误

使用未解析的标识符“kCFStringEncodingGB_18030_2000”

4

1 回答 1

8

我使用 gb312 常量的具体值而不是苹果定义的常量解决了这个问题

let enc = CFStringConvertEncodingToNSStringEncoding(0x0632);     
let dogString:String = NSString(data: data, encoding: enc)!
println(dogString)

这是更好的解决方案 - 感谢 Daij-Djan 的建议

let cfEnc = CFStringEncodings.GB_18030_2000
let enc = CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(cfEnc.rawValue))
let dogString:String = NSString(data: data, encoding: enc)!
于 2015-03-18T12:36:50.963 回答