700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【iOS】如何判断文本文件的字符编码格式

【iOS】如何判断文本文件的字符编码格式

时间:2020-06-18 18:01:18

相关推荐

【iOS】如何判断文本文件的字符编码格式

总体思路:

遍历所有的字符编码,能正确读取输出转换的就是文本文件的编码格式。

代码如下:

//// main.m// 检测文本字符编码格式的小技巧//// Created by 杜子兮 (duzixi) on 14-6-21.// Copyright (c) All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ @autoreleasepool { NSArray *arrEncoding = @[@(NSASCIIStringEncoding), @(NSNEXTSTEPStringEncoding), @(NSJapaneseEUCStringEncoding), @(NSUTF8StringEncoding), @(NSISOLatin1StringEncoding), @(NSSymbolStringEncoding), @(NSNonLossyASCIIStringEncoding), @(NSShiftJISStringEncoding), @(NSISOLatin2StringEncoding), @(NSUnicodeStringEncoding), @(NSWindowsCP1251StringEncoding), @(NSWindowsCP1252StringEncoding), @(NSWindowsCP1253StringEncoding), @(NSWindowsCP1254StringEncoding), @(NSWindowsCP1250StringEncoding), @(NSISOJPStringEncoding), @(NSMacOSRomanStringEncoding), @(NSUTF16StringEncoding), @(NSUTF16BigEndianStringEncoding), @(NSUTF16LittleEndianStringEncoding), @(NSUTF32StringEncoding), @(NSUTF32BigEndianStringEncoding), @(NSUTF32LittleEndianStringEncoding) ]; NSArray *arrEncodingName = @[@"NSASCIIStringEncoding", @"NSNEXTSTEPStringEncoding", @"NSJapaneseEUCStringEncoding", @"NSUTF8StringEncoding", @"NSISOLatin1StringEncoding", @"NSSymbolStringEncoding", @"NSNonLossyASCIIStringEncoding", @"NSShiftJISStringEncoding", @"NSISOLatin2StringEncoding", @"NSUnicodeStringEncoding", @"NSWindowsCP1251StringEncoding", @"NSWindowsCP1252StringEncoding", @"NSWindowsCP1253StringEncoding", @"NSWindowsCP1254StringEncoding", @"NSWindowsCP1250StringEncoding", @"NSISOJPStringEncoding", @"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); /* // 如果有必要,还可以把文件创建出来再测试 [string writeToFile:[NSString stringWithFormat:@"/Users/dlios1/Desktop/%@.xml", arrEncodingName[i]] atomically:YES encoding:encodingCode error:&error]; */ } } return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。