c#读取到的TXT文件中的中文乱码怎么解决

c#读取到的TXT文件中的中文乱码怎么解决,第1张

StreamReader sr = FileOpenText(filename);

改为

StreamReader sr = new StreamReader(filename,EncodingDefault);

StreamReader sr = new StreamReader(filename, EncodingUTF8);

主要UTF8

那是你选中的文件内容字符编码与jvm缺省的文件编码不一致,如unix下jvm缺省文件编码一般为iso8859-1,而你的文件内容可能使用了GBK,可使用如下代码:

FileInputStream fis = new FileInputStream(Abs);

InputStreamReader isr = new InputStreamReader(fis, "GBK"); //GBK替换成你文件内容使用的编码

BufferedReader br = new BufferedReader(isr);

原因很简单:把while(!feof(fp))中的!feof(fp)改成1,然后在fscanf那一句后面加一句if(feof(fp))

break;就可以了。因为feof这个函数要在逻辑上紧跟在“读 *** 作”语句后才能正确生效,而你的写法在第一次进入while时还没有读文件,feof(fp)判断什么?就是这里造成了最后文件越界了还当作正常数据在处理,当然就是乱码了……还有个写法就是把fscanf也写在while的()中,用逗号分开再写!feof(fp),while的体里就不再写fscanf了。这样逻辑很浅析。不过你的fscanf语句太长,写在()中不好看。有兴趣你可以试一下。

以上就是关于c#读取到的TXT文件中的中文乱码怎么解决全部的内容,包括:c#读取到的TXT文件中的中文乱码怎么解决、java读取文件乱码、c语言读取文件数据乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10143065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存