【iOS】如何判断文本文件的字符编码格式
来源:互联网 发布:linux 3.14.79下载 编辑:程序博客网 时间:2024/04/29 06:13
总体思路:
遍历所有的字符编码,能正确读取输出转换的就是文本文件的编码格式。
代码如下:
-
-
-
-
-
-
-
-
- #import <Foundation/Foundation.h>
-
- int main(int argc, const charchar * argv[])
- {
-
- @autoreleasepool {
-
- NSArray *arrEncoding = @[@(NSASCIIStringEncoding),
- @(NSNEXTSTEPStringEncoding),
- @(NSJapaneseEUCStringEncoding),
- @(NSUTF8StringEncoding),
- @(NSISOLatin1StringEncoding),
- @(NSSymbolStringEncoding),
- @(NSNonLossyASCIIStringEncoding),
- @(NSShiftJISStringEncoding),
- @(NSISOLatin2StringEncoding),
- @(NSUnicodeStringEncoding),
- @(NSWindowsCP1251StringEncoding),
- @(NSWindowsCP1252StringEncoding),
- @(NSWindowsCP1253StringEncoding),
- @(NSWindowsCP1254StringEncoding),
- @(NSWindowsCP1250StringEncoding),
- @(NSISO2022JPStringEncoding),
- @(NSMacOSRomanStringEncoding),
- @(NSUTF16StringEncoding),
- @(NSUTF16BigEndianStringEncoding),
- @(NSUTF16LittleEndianStringEncoding),
- @(NSUTF32StringEncoding),
- @(NSUTF32BigEndianStringEncoding),
- @(NSUTF32LittleEndianStringEncoding)
- ];
-
- NSArray *arrEncodingName = @[@"NSASCIIStringEncoding",
- @"NSNEXTSTEPStringEncoding",
- @"NSJapaneseEUCStringEncoding",
- @"NSUTF8StringEncoding",
- @"NSISOLatin1StringEncoding",
- @"NSSymbolStringEncoding",
- @"NSNonLossyASCIIStringEncoding",
- @"NSShiftJISStringEncoding",
- @"NSISOLatin2StringEncoding",
- @"NSUnicodeStringEncoding",
- @"NSWindowsCP1251StringEncoding",
- @"NSWindowsCP1252StringEncoding",
- @"NSWindowsCP1253StringEncoding",
- @"NSWindowsCP1254StringEncoding",
- @"NSWindowsCP1250StringEncoding",
- @"NSISO2022JPStringEncoding",
- @"NSMacOSRomanStringEncoding",
- @"NSUTF16StringEncoding",
- @"NSUTF16BigEndianStringEncoding",
- @"NSUTF16LittleEndianStringEncoding",
- @"NSUTF32StringEncoding",
- @"NSUTF32BigEndianStringEncoding",
- @"NSUTF32LittleEndianStringEncoding"
- ];
-
- for (int i = 0 ; i < [arrEncoding count]; i++) {
- unsigned long encodingCode = [arrEncoding[i] unsignedLongValue];
- NSLog(@"(%@)", arrEncodingName[i]);
- NSError *error = nil;
- NSString *filePath = @"/Users/dlios1/Desktop/event.xml";
- NSString *aString = [NSString stringWithContentsOfFile:filePath encoding:encodingCode error:&error];
- NSLog(@"Error:%@", [error localizedDescription]);
- NSData *data = [aString dataUsingEncoding:encodingCode];
- NSString *string = [[NSString alloc] initWithData:data encoding:encodingCode];
- NSLog(@"%@", string);
-
-
-
-
-
-
-
-
- }
- }
- return 0;
- }
1 1