Tuesday, May 21, 2013

NSString NSUTF16StringEncoding example ios


String Encodings - NSUTF16StringEncoding

The following constants are provided by NSString as possible string encodings.
enum {
   NSASCIIStringEncoding = 1,
   NSNEXTSTEPStringEncoding = 2,
   NSJapaneseEUCStringEncoding = 3,
   NSUTF8StringEncoding = 4,
   NSISOLatin1StringEncoding = 5,
   NSSymbolStringEncoding = 6,
   NSNonLossyASCIIStringEncoding = 7,
   NSShiftJISStringEncoding = 8,
   NSISOLatin2StringEncoding = 9,
   NSUnicodeStringEncoding = 10,
   NSWindowsCP1251StringEncoding = 11,
   NSWindowsCP1252StringEncoding = 12,
   NSWindowsCP1253StringEncoding = 13,
   NSWindowsCP1254StringEncoding = 14,
   NSWindowsCP1250StringEncoding = 15,
   NSISO2022JPStringEncoding = 21,
   NSMacOSRomanStringEncoding = 30,
   NSUTF16StringEncoding = NSUnicodeStringEncoding,
   NSUTF16BigEndianStringEncoding = 0x90000100,
   NSUTF16LittleEndianStringEncoding = 0x94000100,
   NSUTF32StringEncoding = 0x8c000100,
   NSUTF32BigEndianStringEncoding = 0x98000100,
   NSUTF32LittleEndianStringEncoding = 0x9c000100,
   NSProprietaryStringEncoding = 65536
};
Constants
NSUTF16StringEncoding
An alias for NSUnicodeStringEncoding.
Discussion of [NSString NSUTF16StringEncoding]
These values represent the various character encodings supported by the NSStringclasses. This is an incomplete list. Additional encodings are defined in String Programming Guide for Core Foundation (see CFStringEncodingExt.h); these encodings can be used with NSString by first passing the Core Foundation encoding to the CFStringConvertEncodingToNSStringEncoding function.


Example of [NSString NSUTF16StringEncoding]

NSString *myAccentStr = @"José";
NSUInteger l1 = [myAccentStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
NSUInteger l2 = [myAccentStr lengthOfBytesUsingEncoding:NSUTF16StringEncoding];
NSUInteger l3 = [myAccentStr lengthOfBytesUsingEncoding:NSUTF32StringEncoding];
NSLog(@"%ld %ld %ld", (long)l1, (long)l2, (long)l3);

> 5, 8, 16

Example of [NSString NSUTF16StringEncoding]
NSString* question = [dataElements objectAtIndex:2];
const char * questionCString = [question cStringUsingEncoding:NSUTF16StringEncoding];
card.question = [[[NSString alloc] initWithCString:questionCString encoding:UTF16StringEncoding] autorelease];
Example of [NSString NSUTF16StringEncoding]
NSString* resultTemp = @"\u1F604";
NSData* data = [resultTemp dataUsingEncoding:NSUTF16StringEncoding];
NSString* result = [[NSString alloc] initWithData:data encoding:NSUTF16StringEncoding];
self.detailDescriptionLabel.text = result;