我有問題使用CHCSVwriter
導出我的數組到CSV或Excel文件。CHCSVWriter Unicode問題
我有幾個Arrays
在Persian language
(它是本地化的,至少在windows中必須是UTF-8)。
使用CHCSVWriter(thanks, Dave)我可以將我的數組導出爲CSV文件,但不能使用默認設置。
由於我的數組編碼(UTF8沒有工作,我不知道爲什麼!!)但改變CHCSVwriter.m我能夠用我的本地化語言編寫文件。
我有一個奇怪的問題:
1 - 如果我使用NSUTF8StringEncoding
然後,我有一個標準的逗號分隔的CSV文件,它是能夠與Excel打開非常好,正確的列分離,但表格單元格中的未知編碼(我正在使用波斯語)
2-如果我使用NSUTF16StringEncoding
那麼我有一個CSV文件,每行的整列寫入一列!但語言和編碼是正確的!奇怪的是,逗號是不可檢測的Excel,它打開一個表,只有一列,每行包含整個列,我設計用逗號分隔現有的!
此外,我有另一個問題,我沒有找到一種方法來設置CHCSVWriter的編碼,我必須從CHCSVWriter.m文件手動更改它! CHCSVWriter.m的
部分:
- (void)_writeString:(NSString *)string {
// if (encoding == 0) {
// encoding = NSUTF8StringEncoding;
encoding = NSUTF16StringEncoding;
//}
和我的代碼部分:
NSString * tempFileName = [NSString stringWithFormat:@"sellExport.csv"];
NSString * tempFile =[NSHomeDirectory() stringByAppendingPathComponent:tempFileName];
NSLog(@"Writing to file: %@", tempFile);
error = nil;
CHCSVWriter *sellExporting = [[CHCSVWriter alloc] initWithCSVFile:tempFile atomic:NO];
[sellExporting writeLine];
for (int i = 0; i<=[purchaseCodes count] ; i++) {
[sellExporting writeLineOfFields:[purchaseCodes objectAtIndex:i],[purchaseDates objectAtIndex:i],[purchaseCarBrands objectAtIndex:i],[purchaseCarSystems objectAtIndex:i],[purchaseCarModels objectAtIndex:i],[purchaseCarColors objectAtIndex:i],[purchaseCarChassis objectAtIndex:i],[purchaseCustomerNames objectAtIndex:i],[purchaseSharedNames objectAtIndex:i],[purchaseTotals objectAtIndex:i],[sellCodes objectAtIndex:i],[sellCustomerNames objectAtIndex:i],[sellDates objectAtIndex:i],[sellTotals objectAtIndex:i],[sellProfits objectAtIndex:i],[sellShareProfits objectAtIndex:i],nil];
}
[sellExporting closeFile];
[sellExporting release];