我遇到导出到csv文件的数据有问题。 它涉及带重音字符的数据。类型数据是字符串。 在我的文件中我有这个:
Téléphones et internet; Abonnement iPad; 13,90 €; Débit
我想:
Téléphones et internet; Abonnement iPad; 13,90€ Débit
应该使用什么代码来执行此操作? 谢谢。
编辑:我的代码
NSMutableString *writeString = [NSMutableString string];
for (id object in [[self fetchedResultsController] fetchedObjects]) {
NSString * object1 = [[object valueForKey:@"object1Data"] description];
NSString * object2 = [[object valueForKey:@"object2Data"] description];
NSString * object3 = [[object valueForKey:@"object3Data"] description];
NSString * object4 = [[object valueForKey:@"object4Data"] description];;
[writeString appendString:[NSString stringWithFormat:@"%@; %@; %@; %@\n", object1, object2, object3, object4]];
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* savePath = [paths objectAtIndex:0];
savePath = [savePath stringByAppendingPathComponent:@"objectData.csv"];
[writeString writeToFile:savePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];
EDIT2:观看我使用他的:
QLPreviewController *previewController=[[QLPreviewController alloc]init];
previewController.delegate=self;
previewController.dataSource=self;
[self presentViewController:previewController animated:YES completion:nil];
[previewController.navigationItem setRightBarButtonItem:nil];
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* savePath = [paths objectAtIndex:0];
savePath = [savePath stringByAppendingPathComponent:@"objectData.csv"];
return [NSURL fileURLWithPath:savePath];
}
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return 1;
}
答案 0 :(得分:1)
您的输出看起来可能是正确的,问题似乎与您查看它的方式有关。
您是将其导入Excel还是其他什么?根据我的经验,Excel的CSV导入非常差,并且它不会自动检测传入的UTF-8数据。
答案 1 :(得分:0)
这可能是导致问题的编码。
作为旁注,它是CSV =逗号分隔值。你不是把逗号放在......?
变化:
[writeString appendString:[NSString stringWithFormat:@"%@; %@; %@; %@\n", object1, object2, object3, object4]];
要:
[writeString appendString:[NSString stringWithFormat:@"%@;, %@;, %@;, %@\n", object1, object2, object3, object4]];
在excel中打开时,这将使值显示在单独的列中,除非您想要在1列中全部...?