[英]Objective-C How to list all available encoding
In Java I can get all the available encodings with this code: 在Java中,我可以使用以下代码获得所有可用的编码:
SortedMap<String, Charset> availableCharsets = Charset.availableCharsets();
Vector allEncodes = new Vector();
for (Map.Entry<String, Charset> entry : availableCharsets.entrySet()) {
allEncodes.add(entry.getKey());
}
Then, I can read any file with any encode I want: 然后,我可以读取任何我想要的编码文件:
Reader in = new InputStreamReader(new FileInputStream(aPath), allEncodes.get(0) );
So, is there any idea how to implement this in Objective-C 那么,有没有想法如何在Objective-C中实现它
const NSStringEncoding* encodingArray = [NSString availableStringEncodings];
This is more or less translation of your code from Java. 这或多或少是从Java转换代码。 You need also to complete the code checking
readingError
variable. 您还需要完成代码检查
readingError
变量。 Of course, central point is avaiableStringEncodings
static message. 当然,中心点是
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];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.