2011-07-19 13 views
10

Tengo un problema al intentar convertir NSString en NSData y viceversa. Estoy tratando de almacenar cadena cifrada en mi base de datos. Para eso estoy usando el algoritmo AES. Ahora lo que estoy haciendo se me sale encriptada y NSData Estoy convirtiendo esto a NSString usando siguiente:Conversión de NSString a NSData y viceversa

// Not woking 
NSString *strTemp = [[NSString alloc] initWithData:encData encoding:NSUTF8StringEncoding]; 

// Working 
NSString *strTemp = [[NSString alloc] initWithData:encData encoding:NSASCIIStringEncoding]; 

Por qué NSData no está convirtiendo durante el uso de NSUTF8StringEncoding. Misma manera cuando intento convertir la cadena consiguió por NSASCIIStringEncoding usando:

// Not working 
[strTemp dataUsingEncoding:NSASCIIStringEncoding]; 

// Working 
[strTemp dataUsingEncoding:NSUTF8StringEncoding]; 

Por qué NSASCIIStringEncoding no está funcionando, mientras que la conversión de la NSString a NSData?

Respuesta

27

NSString a NSData:

NSString* str= @"teststring"; 
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding]; 

NSData a NSString:

NSString* newStr = [[NSString alloc] initWithData:theData 
             encoding:NSUTF8StringEncoding]; 
+0

Esto es lo que estoy haciendo en mi primer código. Pero obteniendo una cadena nula –

+0

¿puedes proporcionar más código? – Maulik

+0

el código es total aquí ... Tengo una cadena Estoy convirtiéndolo en Datos usando '[strTemp dataUsingEncoding: NSUTF8StringEncoding]' trabajando, pero '[strTemp dataUsingEncoding: NSASCIIStringEncoding]' no funciona de manera similar los datos que obtuve usando '[strTemp dataUsingEncoding : NSUTF8StringEncoding] 'Estoy convirtiendo de nuevo a cadena usando' [[NSString alloc] initWithData: encData encoding: NSASCIIStringEncoding] 'funciona, pero' [[NSString alloc] initWithData: encData encoding: NSUTF8StringEncoding] 'no lo es. Entonces, cada vez que ocurre mi conversión, utilizo una codificación diferente que no garantiza el mismo resultado. –

2

agradar a la mente que NSASCIIStringEncoding y NSUTF8StringEncoding necesita para que coincida con los caracteres de la cadena.

Cuestiones relacionadas