Domanda

Sto usando MD5 funzione e la Codifica Base64 per generare un Utente Segreto (utilizzato per l'accesso ai dati a livello di API)

Ho fatto il codice javascript e va bene, ma in Objective C sto strugling con il BOM

il mio codice è:

NSString *str = [[NSString alloc] 
                 initWithFormat:@"%@%@%@%d", 
                    [auth uppercaseString], 
                    [user uppercaseString], 
                    [pwd uppercaseString], 
                    totalDaysSince2000];

NSString *sourceString = [[NSString alloc] initWithFormat:@"%02x%02x%02x%@", 
                          0xEF, 
                          0xBB, 
                          0xBF, 
                          str]; 

NSString *strMd5 = [sourceString MD5]; 

NSData *sourceData = [strMd5 dataUsingEncoding:NSUTF8StringEncoding];  
NSString *base64EncodedString = [[sourceData base64EncodedString] autorelease];  

utilizzando il codice di cui sopra io sto a memoria:

alt text
(fonte: balexandre.com)

strega non è quello che ho davvero bisogno...

Ho anche provato con

"%c%c%c%@", (char)239, (char)187, (char)191, str

senza fortuna...

utilizzando UTF8String non cuce per aggiungere il BOM automaticamente in C# :-(

Come posso aggiungere il BOM correttamente ?

È stato utile?

Soluzione

Tenta di incorporare il BOM direttamente nella stringa di formato come carattere di escape letterali:

NSString *sourceString = [[NSString alloc] initWithFormat:@"\357\273\277%@", str];

Altri suggerimenti

Potrebbe essere necessario aggiungere la DISTINTA base per la NSData oggetto, non il NSString.Qualcosa di simile a questo:

char BOM[] = {0xEF, 0xBB, 0xBF};
NSMutableData* data = [NSMutableData data];
[data appendBytes:BOM length:3];
[data appendData:[strMd5 dataUsingEncoding:NSUTF8StringEncoding]];

Ho avuto un simile problema con Swift e apertura CSV fime in Excel.Questa domanda inoltre mi ha aiutato molto.

Soluzione semplice per swift con file CSV:

let BOM = "\u{FEFF}"
csvFile.append(BOM)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top