Skip to content

Instantly share code, notes, and snippets.

@danielctull
Created September 9, 2018 20:40
Show Gist options
  • Save danielctull/a243d076ca9622284f1bbe00d7ebdd14 to your computer and use it in GitHub Desktop.
Save danielctull/a243d076ca9622284f1bbe00d7ebdd14 to your computer and use it in GitHub Desktop.
Why have one encoding type when you can have three??
extension String.Encoding {
init?(charset: String) {
let cfencoding = CFStringConvertIANACharSetNameToEncoding(charset as CFString)
guard cfencoding != kCFStringEncodingInvalidId else {
return nil
}
let nsencoding = CFStringConvertEncodingToNSStringEncoding(cfencoding)
self = String.Encoding(rawValue: nsencoding)
}
var charset: String {
let cfencoding = CFStringConvertNSStringEncodingToEncoding(rawValue)
let cfcharset = CFStringConvertEncodingToIANACharSetName(cfencoding)!
return cfcharset as String
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment