UCS2/UTF16 encoded String von NSString

Es kann vorkommen das man einen Windows 16bit wchar_t Type (UCS2 encoded) oder einen UTF-16 encoded Bytestream ausgehend von einem NSString benötigt.

Folgendes konvertiert einen NSString in einen UTF-16 Bytestream:


NSString *txt = @“Sample“;
char szBuffer[100];
NSUInteger nLenBuffer = (
NSUInteger)(sizeof(szBuffer)/2);

if ( [txt getCString:(char *)szBuffer
maxLength:(NSUInteger)(nLenBuffer)
encoding:NSUTF16LittleEndianStringEncoding ] ) {
// szBuffer now contain a UTF16 LE encoded string
}