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

总体思路:

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


代码如下:

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //  
  2. //  main.m  
  3. //  检测文本字符编码格式的小技巧  
  4. //  
  5. //  Created by 杜子兮 (duzixi) on 14-6-21.  
  6. //  Copyright (c) 2014年 lanou3g.com All rights reserved.  
  7. //  
  8.   
  9. #import <Foundation/Foundation.h>  
  10.   
  11. int main(int argc, const charchar * argv[])  
  12. {  
  13.   
  14.     @autoreleasepool {  
  15.           
  16.         NSArray *arrEncoding = @[@(NSASCIIStringEncoding),  
  17.                                  @(NSNEXTSTEPStringEncoding),  
  18.                                  @(NSJapaneseEUCStringEncoding),  
  19.                                  @(NSUTF8StringEncoding),  
  20.                                  @(NSISOLatin1StringEncoding),  
  21.                                  @(NSSymbolStringEncoding),  
  22.                                  @(NSNonLossyASCIIStringEncoding),  
  23.                                  @(NSShiftJISStringEncoding),  
  24.                                  @(NSISOLatin2StringEncoding),  
  25.                                  @(NSUnicodeStringEncoding),  
  26.                                  @(NSWindowsCP1251StringEncoding),  
  27.                                  @(NSWindowsCP1252StringEncoding),  
  28.                                  @(NSWindowsCP1253StringEncoding),  
  29.                                  @(NSWindowsCP1254StringEncoding),  
  30.                                  @(NSWindowsCP1250StringEncoding),  
  31.                                  @(NSISO2022JPStringEncoding),  
  32.                                  @(NSMacOSRomanStringEncoding),  
  33.                                  @(NSUTF16StringEncoding),  
  34.                                  @(NSUTF16BigEndianStringEncoding),  
  35.                                  @(NSUTF16LittleEndianStringEncoding),  
  36.                                  @(NSUTF32StringEncoding),  
  37.                                  @(NSUTF32BigEndianStringEncoding),  
  38.                                  @(NSUTF32LittleEndianStringEncoding)  
  39.                                  ];  
  40.           
  41.         NSArray *arrEncodingName = @[@"NSASCIIStringEncoding",  
  42.                                      @"NSNEXTSTEPStringEncoding",  
  43.                                      @"NSJapaneseEUCStringEncoding",  
  44.                                      @"NSUTF8StringEncoding",  
  45.                                      @"NSISOLatin1StringEncoding",  
  46.                                      @"NSSymbolStringEncoding",  
  47.                                      @"NSNonLossyASCIIStringEncoding",  
  48.                                      @"NSShiftJISStringEncoding",  
  49.                                      @"NSISOLatin2StringEncoding",  
  50.                                      @"NSUnicodeStringEncoding",  
  51.                                      @"NSWindowsCP1251StringEncoding",  
  52.                                      @"NSWindowsCP1252StringEncoding",  
  53.                                      @"NSWindowsCP1253StringEncoding",  
  54.                                      @"NSWindowsCP1254StringEncoding",  
  55.                                      @"NSWindowsCP1250StringEncoding",  
  56.                                      @"NSISO2022JPStringEncoding",  
  57.                                      @"NSMacOSRomanStringEncoding",  
  58.                                      @"NSUTF16StringEncoding",  
  59.                                      @"NSUTF16BigEndianStringEncoding",  
  60.                                      @"NSUTF16LittleEndianStringEncoding",  
  61.                                      @"NSUTF32StringEncoding",  
  62.                                      @"NSUTF32BigEndianStringEncoding",  
  63.                                      @"NSUTF32LittleEndianStringEncoding"  
  64.                                     ];  
  65.           
  66.         for (int i = 0 ; i < [arrEncoding count]; i++) {  
  67.             unsigned long encodingCode = [arrEncoding[i] unsignedLongValue];  
  68.             NSLog(@"(%@)", arrEncodingName[i]);  
  69.             NSError *error = nil;  
  70.             NSString *filePath = @"/Users/dlios1/Desktop/event.xml"// <---这里是要查看的文件路径  
  71.             NSString *aString = [NSString stringWithContentsOfFile:filePath encoding:encodingCode  error:&error];  
  72.             NSLog(@"Error:%@", [error localizedDescription]);  
  73.             NSData *data = [aString dataUsingEncoding:encodingCode];  
  74.             NSString *string = [[NSString alloc] initWithData:data encoding:encodingCode];  
  75.             NSLog(@"%@", string);  
  76.               
  77.             /* 
  78.             // 如果有必要,还可以把文件创建出来再测试 
  79.             [string writeToFile:[NSString stringWithFormat:@"/Users/dlios1/Desktop/%@.xml", arrEncodingName[i]] 
  80.                      atomically:YES 
  81.                        encoding:encodingCode 
  82.                           error:&error]; 
  83.              */  
  84.         }  
  85.     }  
  86.     return 0;  
  87. }  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值