itok's Lab

昔の開発ネタを記録として残してます

エンコーディング名からNSStringEncodingを取得

まずCFStringを用意します。

CFStringRef strRef = CFSTR("utf-8");

CFStringConvertIANACharSetNameToEncodingを用いてCFStringEncodingヘ変換。

CFStringEncoding cfEncoding = kCFStringEncodingInvalidId;
cfEncoding = CFStringConvertIANACharSetNameToEncoding(strRef);

あとはCFStringEncoding -> NSStringEncodingの変換をするだけ。

NSStringEncoding nsEncoding;
if (cfEncoding != kCFStringEncodingInvalidId) {
    nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding);
} else {
    nsEncoding = NSProprietaryStringEncoding;
}