iOS之使用QLPreviewController打开文件,处理txt文件出现乱码的情况

时间:2024-04-06 16:34:53

iOS之使用QLPreviewController打开文件,处理txt文件出现乱码的情况

主要代码:

- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
//处理txt格式内容显示有乱码的情况
NSData *fileData = [NSData dataWithContentsOfFile:self.files];
//判断是UNICODE编码
NSString *isUNICODE = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
//还是ANSI编码(-2147483623,-2147482591,-2147482062,-2147481296)encoding 任选一个就可以了
NSString *isANSI = [[NSString alloc] initWithData:fileData encoding:-];
if (isUNICODE) {
NSString *retStr = [[NSString alloc]initWithCString:[isUNICODE UTF8String] encoding:NSUTF8StringEncoding];
NSData *data = [retStr dataUsingEncoding:NSUTF16StringEncoding];
[data writeToFile:self.files atomically:YES];
}
else if(isANSI){
NSData *data = [isANSI dataUsingEncoding:NSUTF16StringEncoding];
[data writeToFile:self.files atomically:YES];
} return [NSURL fileURLWithPath:self.files];
}