NSFileHandle读取中文txt文件问题

NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];

unsigned long long startLocation = xx;

[fileHandle seekToFileOffset:startLocation];

NSInteger length = 100;

NSData *data  = [fileHandle readDataOfLength: length];

NSString *labelText = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

[fileHandle closeFile];    

现有问题,一个中文占2个字符,而NSFileHandle 是按字节读取的,假设文件内容是“我们当然希望你的问题被回答而不仅仅是提问,所以尽量写清楚你的问题,合理使用标签...”

  1. startLocation为7,这时候无论你设的读取数据长度是多少,都读取不出数据,因为它正好读在“然”这个字上,但并不能完整读取。

  2. 如果读取的长度,也正好读到某个字的中间位置,这时候也是读取不出数据的,

像这样的问题,你们都是如何解决的?

阅读 4.8k
1 个回答

...不确定和你说的是不是一个东西...
无非是中文字符的问题,你直接取前14个字符的长度(不管中英文,14个字符总够了),转换成NSString,再直接substringToIndex:7一下,取前三个字,不就出来了吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题