Posted at

NSStringEncoding と IANA 文字列とを相互に変換する

More than 3 years have passed since last update.


目的

Cocoa フレームワークで使われる NSStringEncoding と Web などで使われる IANA 文字列 とを相互に変換する方法です。


たとえば UTF8 文字セットを NSStringEncoding で表現すると NSUTF8StringEncoding になり、IANA 文字列 で表現すると utf-8 になります。



IANA 文字列 を NSStringEncoding に変換する

IANA 文字列NSStringEncoding に変換するには、IANA 文字列 をいったん CFStringEncoding にして、それを NSStringEncoding にします。

let charset = "utf-8"

let cfEncoding = CFStringConvertIANACharSetNameToEncoding(charset)
let nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding)


NSStringEncoding を IANA 文字列に変換する

NSStringEncoding から IANA 文字列 への変換は、NSStringEncoding をいったん CFStringEncoding にしてから、それを IANA 文字列 にします。

let nsEncoding = NSUTF8StringEncoding

let cfEncoding = CFStringConvertNSStringEncodingToEncoding(nsEncoding)
let charset = CFStringConvertEncodingToIANACharSetName(cfEncoding)


[詳細と留意点] http://ez-net.jp/article/CA/fPXLe9NO/BrX0FGCxLZsQ/