1.txt 文件内容: 你好a,我是千叶!
期望结果: 你好a
#include <stdio.h>
main()
{
FILE *fp;
fp=fopen("1.txt","r");
char x[1000];
fread(x,sizeof(char),7,fp); //length=7,对于现在的1.txt结果正确,如果1.txt变成纯中文的文件,第三个汉字就会被截断,请问要怎么处理呢?
printf("%s",x);
}
====================================================================================
我的场景是文件比较大,不太想把整个文件读取到NSData或者NSString,所以希望NSData读取部分数据,再转化成NSString,于是就遇到了中文字符截取出现问题的情况。看了大家的回答,发现这个问题可能是个伪命题,毕竟文件的偏移是按字节算的不会去考虑文件字符编码。
提供个思路:
读取文件,你必须知道字符编码
生成NSString 对象,NSString 有个初始化方法是initWithData:encoding:,然后 NSData 有个初始化方法是dataWithContentsOfFile:
确保步轴2 正常生成对象后,调用 NSString 的成员方法:substringWithRange:进行截取
希望能帮到lz
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。