大家好,我从互联网下载文件时遇到问题,我需要从中挖掘一些数据。我打开它并尝试缓冲它,但它给了我错误的字符,因为这个文件是捷克语......我的代码:
- (void) sync {
NSString * path = @"/Users/syky/Documents/stats.csv";
NSFileHandle * fileHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSData * buffer = nil;
while ((buffer = [fileHandle readDataOfLength:1024])) {
//do something with the buffer
NSString * s = [[NSString alloc]initWithData:buffer encoding:nil];
NSLog(s);
break;
}
无论我选择哪种编码,我总是会得到损坏的字符,例如
"Poø.";"Jméno"
我需要得到:
"Příjmení";"Jméno"
此文件最初由 Microsoft Excel 生成,例如 *.csv 导出文件...当我尝试通过任何 MAC OS X 文本编辑器打开此文件时,我也会收到损坏的字符,但是当我在其他基于 Windows 的机器上打开它时Microsoft Excel 它工作得很好...
谢谢您的帮助
解决方案:
- (void) sync {
NSString * path = @"/Users/syky/Documents/stats.csv";
NSFileHandle * fileHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSData * buffer = nil;
while ((buffer = [fileHandle readDataOfLength:1024])) {
NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsLatin2);
NSString *string = [[NSString alloc] initWithData:buffer encoding:encoding];
NSLog(string);
break;
}