1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #import "NCUchardet.h"
- #import "uchardet.h"
- @interface NCUchardet ()
- {
- uchardet_t _detector;
- }
- @end
- @implementation NCUchardet
- - (id)init
- {
- self = [super init];
-
- if (self) {
- _detector = uchardet_new();
- }
-
- return self;
- }
- - (NSString *)encodingStringDetectWithData:(NSData *)data
- {
- uchardet_handle_data(_detector, [data bytes], [data length]);
- uchardet_data_end(_detector);
-
- const char *charset = uchardet_get_charset(_detector);
- NSString *encoding = [NSString stringWithCString:charset encoding:NSASCIIStringEncoding];
-
- uchardet_reset(_detector);
-
- return encoding;
- }
- - (CFStringEncoding)encodingCFStringDetectWithData:(NSData *)data
- {
- NSString *encodingName = [self encodingStringDetectWithData:data];
- if ([encodingName isEqualToString:@""]) {
- return kCFStringEncodingInvalidId;
- }
-
- CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName);
-
- return encoding;
- }
- @end
|