NSString for const char * convert with Greek characters

I am trying to convert an NSString that contains a Greek word to const char. I am trying to convert a UTF-8 encoded string that is intended for the Greek language, and when I register a char, it has garbage. Please help a little here.

//this is the greek word 
NSString *letter = textFieldLetter.text;

//NSString to const char conversion for the sql query
const char *cLetter = (const char *)[letter cStringUsingEncoding:NSUTF8StringEncoding]; 

//this contains junk!
NSLog(@"letter: %s",cLetter);
0
source share
1 answer

You do not need to use UTF8, use Unicode ( NSUnicodeStringEncoding ) instead .

If you see what NSStringEncodingthese options will see (there are more):

enum {
NSWindowsCP1253StringEncoding = 13,    /* Greek */
NSUTF16StringEncoding = NSUnicodeStringEncoding,   

NSUTF16BigEndianStringEncoding = 0x90000100,          /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF16LittleEndianStringEncoding = 0x94000100,       /* NSUTF16StringEncoding encoding with explicit endianness specified */

NSUTF32StringEncoding = 0x8c000100,                   
NSUTF32BigEndianStringEncoding = 0x98000100,          /* NSUTF32StringEncoding encoding with explicit endianness specified */
NSUTF32LittleEndianStringEncoding = 0x9c000100        /* NSUTF32StringEncoding encoding with explicit endianness specified */
};
typedef NSUInteger NSStringEncoding;

You can see the specific Greek lenguage: NSWindowsCP1253StringEncoding

If this does not work, you can try using other UTF16 or UTF32. But I think Unicode works for you.

-

, NSLog(@"%s",string); . , .

, , . , .

const char *cLetter = (const char *)[letter cStringUsingEncoding:NSUnicodeStringEncoding]; 
NSString *original = [NSString stringWithCString:cLetter encoding:NSUnicodeStringEncoding];
0

All Articles