打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

总体思路:

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


代码如下:

////  main.m//  检测文本字符编码格式的小技巧////  Created by 杜子兮 (duzixi) on 14-6-21.//  Copyright (c) 2014年 lanou3g.com 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),                                 @(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);                        /*            // 如果有必要,还可以把文件创建出来再测试            [string writeToFile:[NSString stringWithFormat:@"/Users/dlios1/Desktop/%@.xml", arrEncodingName[i]]                     atomically:YES                       encoding:encodingCode                          error:&error];             */        }    }    return 0;}


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ios 读取各种类型文件
2dx学习笔记
[译]iOS 7: 使用Base64编解码NSData和NSString对象
以文本格式和二进制格式打开文件,到底有什么区别?
用ultraedit实现编码转换
程序员永远的痛之字符编码的奥秘
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服