Swift 中文GBK乱码解决方案

2021-11-14  本文已影响0人  芮淼一线

String.Encoding GBK编码支持,然后对String编码时直接使用gbk即可。

# GBK编码, 使用GB18030是因为它向下兼容GBK
let cfEnc = CFStringEncodings.GB_18030_2000
let enc = CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(cfEnc.rawValue))
let gbk = String.Encoding.init(rawValue: enc)

优化:可对String.Encoding进行扩展

extension String.Encoding{
    public static let gbk: String.Encoding = .init(rawValue:CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(CFStringEncodings.GB_18030_2000.rawValue)))
}

再优化:直接使用enc的原始值(2147485234) 创建GBK编码,可用于纯Swift的项目

extension String.Encoding{
    public static let gbk: String.Encoding = .init(rawValue: 2147485234)
}
上一篇下一篇

猜你喜欢

热点阅读