程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-objectiveC中怎麼獲得所有的可用編碼?

ios-objectiveC中怎麼獲得所有的可用編碼?

編輯:編程綜合問答
objectiveC中怎麼獲得所有的可用編碼?

在Java中可以這樣獲取可用編碼:

SortedMap<String, Charset> availableCharsets = Charset.availableCharsets();
Vector allEncodes = new Vector();
for (Map.Entry<String, Charset> entry : availableCharsets.entrySet()) {
            allEncodes.add(entry.getKey());
}

然後這樣讀取文件:

Reader in = new InputStreamReader(new FileInputStream(aPath), allEncodes.get(0) );

那麼在objective-c中怎麼實現類似的功能?

最佳回答:


我給的代碼有點類似Java.不過你要完善其中的readingError變量。核心代碼是avaiableStringEncodings.

  NSMutableArray *arrayOfEncodings = [[NSMutableArray alloc] init];

  const NSStringEncoding *encodings = [NSString availableStringEncodings];
  while (*encodings != 0){
    [arrayOfEncodings addObject:[NSNumber numberWithInt:*encodings]];
    encodings++;
  }

  NSError *readingError = nil;
  NSString yourPath = @"some path you want";
  NSData *data = [[NSData alloc] initWithContentsOfFile:yourPath    options:NSDataReadingUncached error:&readingError];

  NSStringEncoding firstEncoding = (NSStringEncoding) [((NSNumber *) [arrayOfEncodings objectAtIndex:0]) intValue];

  NSString *myString = [[NSString alloc] initWithData:data encoding:firstEncoding]; 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved