I'm creating a CSV
file from CoreData using CHCSVWriter
, so far so good and the file is creating perfectly. My problem is when i'm trying to send the CSV
file that i've created i'm running in some issues, I open the CSV
file with Excel and instead of Hebrew text I see gibberish.
While using NSLog
to print the result of the CSV
string, I see the Hebrew just fine. Even after converting it from NSString
to NSData
and back again.
This is what I get:
יוסי צפר
This is my code:
- (void)createCSV
{
CHCSVWriter *writer = [[CHCSVWriter alloc] initForWritingToCSVFile:[self csvFilePath]];
for (EWDBUsers *user in self.users)
{
[writer writeField:user.name];
[writer writeField:user.company];
[writer writeField:user.email];
[writer writeField:user.telephone];
[writer finishLine];
}
[writer closeStream];
}
- (NSString*)csvFilePath
{
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filename = @"users.csv";
return [documentsDirectory stringByAppendingPathComponent:filename];
}
- (void)showMailComposerController
{
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"Users List"];
[controller setMessageBody:@"Attachment." isHTML:NO];
NSError *error;
NSString *csvFileString = [NSString stringWithContentsOfFile:[self csvFilePath] encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@", csvFileString);
NSData *csv = [csvFileString dataUsingEncoding:[NSString defaultCStringEncoding]];
[controller addAttachmentData:csv mimeType:@"text/cvs" fileName:@"users.csv"];
if (controller) {
[self presentModalViewController:controller animated:YES];
}
} else {
return;
}
}
Can someone please tell me what am I doing wrong?
Thanks in advance.
You're seeing gibberish because you're converting Unicode to ASCII. [csvFileString dataUsingEncoding:[NSString defaultCStringEncoding]]
should be [csvFileString dataUsingEncoding:NSUTF8StringEncoding]
.
Also, mimeType:@"text/cvs"
should be mimeType:@"text/csv"
.
EDIT: The issue seems to be Excel. Opening the received CSV file in TextEdit displays just fine.