2009-11-26 9 views

Respuesta

0

Usted puede tratar de utilizar

- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding 
+0

gracias por Respuesta rápida ... Estoy intentando este código ... FileString = [[NSString alloc] initWithContentsOfFile: defaultPath]; unsigned char * finalstring = [FileString UTF8Char]; pero no está compilando .. – KamalBhr

4

NSString reference es su ayuda. NSString tiene estas funciones para convertirlo en la c-secuencia:

- (const char *)UTF8String; 
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding 
- (BOOL)getCString:(char *)buffer maxLength:(NSUInteger)maxBufferCount encoding:(NSStringEncoding)encoding 

Y también hay una similar question.

+0

muchas gracias por su respuesta rápida y tengo la solución .. respetos kamalBhr – KamalBhr

19

Bueno, la pregunta es un poco errónea, porque escribir no es lo único que tiene que preocuparse. No solo debe preocuparse por el acceso, sino que también debe preocuparse por la codificación. Suponiendo que lo que desea es la codificación UTF-8, lo que puede salirse con la suya:

NSString *myString = @"Hello"; 
const unsigned char *string = (const unsigned char *) [myString UTF8String]; 

Si, sin embargo, es necesario tener acceso a un byte por los datos de caracteres, que es probable que desee una de las otras codificaciones, como ASCII:

NSString *myString = @"Hello"; 
const unsigned char *string = (const unsigned char *) [myString cStringUsingEncoding:NSASCIIStringEncoding]; 

la otra codificación valioso que es posible que desee utilizar es Latin1, que le consigue ASCII estándar, junto con caracteres acentuados y símbolos utilizados por la mayoría de los idiomas de Europa occidental y los EE.UU.: NSISOLatin1StringEncoding

+0

+1 por el 'NSISOLatin1StringEncoding'. 'NSASCIIStringEncoding' estaba fallando porque mi cadena contenía glifos con un valor sin signo> 128. – PassKit

Cuestiones relacionadas