我们正在为实现 NNTP 协议的 iOS5 开发一个简单的 usenet 阅读器。
不幸的是,我们在编码方面遇到了一些问题:标头可能如下所示:
Subject: Re: [GA] =?ISO-8859-15?Q?Pr=FCfungsmodus?=
Date: 22 Apr 2012 22:50:38 +0200
Objective-C 中是否有一些简单的方法可以将包含的 NSString 转换=?ISO-8859-15?Q?Pr=FCfungsmodus?=
为“ Prüfungsmodus
”?
谢谢
编辑:
嗯。我不确定我是否正确:您的意思是:
NSRange range = [input rangeOfString:@"=?"];
NSRange range2 = [input rangeOfString:@"?="];
NSString *string_to_decode = [input substringWithRange:NSMakeRange(range.location, range2.location-(range.location-2))];
NSData *data = [string_to_decode dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:YES];
NSString *converted = [[NSString alloc] initWithData:data encoding:(NSISOLatin1StringEncoding)];
因为那行不通。。
EDIT2 尝试转换原始字节:
uint8_t buffer[1024];
iStream read:buffer maxLength:sizeof(buffer)
NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSISOLatin1StringEncoding];
无论我在这里选择哪种编码,Subject:
字段看起来总是一样的(除了日语等编码......)