In http://php.net/quoted_printable_decode, ben preg_replace kullanarak bunu yapmak için yollar bulundu. Şey RFC 2045 bölüm 6.7 normal bir NSString dönüştürmek herhangi bir kodu bilen herkes?
Şimdiden teşekkürler!
In http://php.net/quoted_printable_decode, ben preg_replace kullanarak bunu yapmak için yollar bulundu. Şey RFC 2045 bölüm 6.7 normal bir NSString dönüştürmek herhangi bir kodu bilen herkes?
Şimdiden teşekkürler!
Orada bir alıntı yazdırılabilir bir dize çözmek için Kakao hiçbir yöntem, ancak kolayca gibi bir şey kendiniz yazabilirsiniz:
@interface NSString (QuotedPrintableStrings)
+(NSString*)stringWithQuotedPrintableString:(const char *)qpString;
@end
@implementation NSString (QuotedPrintableStrings)
+(NSString*)stringWithQuotedPrintableString:(const char *)qpString
{
const char *p = qpString;
char *ep, *utf8_string = malloc(strlen(qpString) * sizeof(char));
NSParameterAssert( utf8_string );
ep = utf8_string;
while( *p ) {
switch( *p ) {
case '=':
NSAssert1( *(p + 1) != 0 && *(p + 2) != 0, @"Malformed QP String: %s", qpString);
if( *(p + 1) != '\r' ) {
int i, byte[2];
for( i = 0; i < 2; i++ ) {
byte[i] = *(p + i + 1);
if( isdigit(byte[i]) )
byte[i] -= 0x30;
else
byte[i] -= 0x37;
NSAssert( byte[i] >= 0 && byte[i] < 16, @"bad encoded character");
}
*(ep++) = (char) (byte[0] << 4) | byte[1];
}
p += 3;
continue;
default:
*(ep++) = *(p++);
continue;
}
}
return [[[NSString alloc] initWithBytesNoCopy:utf8_string length:strlen(utf8_string) encoding:NSUTF8StringEncoding freeWhenDone:YES] autorelease];
}
@end
Diğerleri bu işlevselliği arayanlar için, Jason Coco's cevap gerçekten iyi çalışıyor, ama önemli bir hata vardır. Sen dönmeden önce utf8_string sonuna bir boş karakter eklemek gerekir. Dolayısıyla, sadece return deyimi önce, çizgi *ep = '\0';
ekleyebilir ve o hile yapmak gerekir. Ayrıca, çözülen dize UTF-8 farklı bir karakter kodlaması kullanabilir çünkü, bir NSData nesneyi ziyade NSString dönmek için modifiye. return [NSData dataWithBytes:(char *)utf8_string length:strlen(utf8_string)];
gibi bir şey iyi çalışıyor. Sonra arama yöntemi uygun kodlamayı kullanarak bir geri NSString haline döndürülen verileri doldurma bakabilirim.