NNTPプロトコルを実装するiOS5用のシンプルなUsenetリーダーを開発しています。
残念ながら、エンコーディングに問題があります。ヘッダーは次のようになります。
Subject: Re: [GA] =?ISO-8859-15?Q?Pr=FCfungsmodus?=
Date: 22 Apr 2012 22:50:38 +0200
=?ISO-8859-15?Q?Pr=FCfungsmodus?=
Objective-Cに" "を含むNSStringを変換する簡単な方法はあり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:
フィールドは常に同じように見えます(日本語などのエンコーディングを除く...)