【问题标题】:How to change GB-2312 encoding to UTF-8如何将 GB-2312 编码更改为 UTF-8
【发布时间】:2015-05-21 05:28:48
【问题描述】:

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

我试过这段代码

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

但它有一个错误

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

【问题讨论】:

标签: swift utf-8 gb2312


【解决方案1】:

我通过使用 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)!

【讨论】:

  • 糟糕的解决方案 - 不要使用幻数 - 做 martin R 写的事情
猜你喜欢
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 2010-10-29
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多