Skip to content

Instantly share code, notes, and snippets.

@douglashill
Created September 23, 2014 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save douglashill/fd4beb987ed1d076768a to your computer and use it in GitHub Desktop.
Save douglashill/fd4beb987ed1d076768a to your computer and use it in GitHub Desktop.
#import <Foundation/Foundation.h>
void printInManyEncodings(u_int8_t hex)
{
NSData *const data = [NSData dataWithBytes:&hex length:sizeof(hex)];
NSDictionary *const encodings = @{
@"ASCII" : @(NSASCIIStringEncoding),
@"NEXTSTEP" : @(NSNEXTSTEPStringEncoding),
@"JapaneseEUC" : @(NSJapaneseEUCStringEncoding),
@"UTF8" : @(NSUTF8StringEncoding),
@"ISOLatin1" : @(NSISOLatin1StringEncoding),
@"Symbol" : @(NSSymbolStringEncoding),
@"NonLossyASCII" : @(NSNonLossyASCIIStringEncoding),
@"ShiftJIS" : @(NSShiftJISStringEncoding),
@"ISOLatin2" : @(NSISOLatin2StringEncoding),
@"Unicode" : @(NSUnicodeStringEncoding),
@"WindowsCP1251" : @(NSWindowsCP1251StringEncoding),
@"WindowsCP1252" : @(NSWindowsCP1252StringEncoding),
@"WindowsCP1253" : @(NSWindowsCP1253StringEncoding),
@"WindowsCP1254" : @(NSWindowsCP1254StringEncoding),
@"WindowsCP1250" : @(NSWindowsCP1250StringEncoding),
@"ISO2022JP" : @(NSISO2022JPStringEncoding),
@"MacOSRoman" : @(NSMacOSRomanStringEncoding),
@"UTF16" : @(NSUTF16StringEncoding),
@"UTF16BigEndian" : @(NSUTF16BigEndianStringEncoding),
@"UTF16LittleEndian" : @(NSUTF16LittleEndianStringEncoding),
@"UTF32" : @(NSUTF32StringEncoding),
@"UTF32BigEndian" : @(NSUTF32BigEndianStringEncoding),
@"UTF32LittleEndian" : @(NSUTF32LittleEndianStringEncoding),
};
[encodings enumerateKeysAndObjectsUsingBlock:^(NSString *name, NSNumber *encoding, BOOL *stop) {
NSString *const string = [[NSString alloc] initWithData:data encoding:[encoding unsignedIntegerValue]];
NSLog(@"%@ - %@", [string length] ? string : @" ", name);
}];
}
int main(int argc, char *argv[]) {
@autoreleasepool {
printInManyEncodings(0x92);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment