我是Objective-C和Cocoa的新手。但我开发简单的邮件客户端。我有一些编码问题。 MIME标头可能如下所示:
From: =?UTF-8?B?eWVsbA==?= <example@mail.com>
Subject: =?UTF-8?B?0J/RgNC+0LLQtdGA0LrQsCDRgdCy0Y/Qt9C4?=
或者像这样:
Subject: =?KOI8-R?B?zc7F?=
From: user <example@mail.com>
或者像这样:
Subject: test subject
From: testname <example@mail.com>
如您所见,如果它不是ASCII字符串,则它具有以下格式:
=?{charset}?{B or Q}?{Base64 or Quoted-printable encoded string}?=
因此在base64解码后我们知道这个字符串的字符集。 例如,是否有PHP函数iconv()的模拟。或者如何在Objective-C中的不同字符集之间进行转换?
答案 0 :(得分:0)
您可以使用这两个NSString方法
- (BOOL)getBytes:(void *)buffer maxLength:(NSUInteger)maxBufferCount usedLength:(NSUInteger *)usedBufferCount encoding:(NSStringEncoding)encoding options:(NSStringEncodingConversionOptions)options range:(NSRange)range remainingRange:(NSRangePointer)leftover
- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding