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. 如果读取的长度,也正好读到某个字的中间位置,这时候也是读取不出数据的,

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

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

  • addSubView 添加一个tableView,不能正常滚动
  • 请问view is layer’s delegate 这句话该怎么理解
  • leancloud中单独上传了图片结果应用刷新上传的图片就会报错
  • ipad勾选requires full screen后转屏无动画效果
  • iOS 怎么使用 core animation 让一条水平的线 旋转45度啊?
  • swift通过属性传值,返回为空,怎么解决?
  • UICollectionViewLayout中两个方法的疑惑
  • iOS上AES128与256加密的问题
  • GCDAsyncSocket中delegateQueue如果不想使用主线程该如何处理回调?
  • weex 现在还能开发苹果应用吗?
  • 使用Masonry 报NSInternalInconsistencyException错误