在写c#代码的时候,遇到一个问题,在使用File.ReadAllText()打开文本文件的时候,调试发现打开的文本是乱码,我生成的这个文本文件是在c++程序下,以多字节格式生成的,然后保存的一个文本,c# 使用File.ReadAllText()读取这个文本的时候没有指定字符集。

解决方法:

1.使用File.ReadAllText()读取文件:

File.ReadAllText(strfilename,System.Text.Encoding.Default)        //在后面加上默认字符集,strfilename指的是文件的路径加名称(包括后缀名)

2.使用FileStream和  StreamReader

FileStream fs = new FileStream(strfilename, FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
 StreamReader sr = new StreamReader(fs, Encoding.Default);            //在后面加上默认字符集

下面是我实际项目中的实际代码:

功能就是为了实现打开并识别两种字符集(unicode和多字节)的文本,然后根据判断文本的内容,进行其他操作

  // 获取测试结果if (File.Exists(ti.Path + "\\TestResult.txt"))//更改字符集不同的读取的乱码,导致测试结果无法读取的问题,{string data_back = File.ReadAllText(ti.Path + "\\TestResult.txt");   //读取UNICODE文本,如果文本是多字节则出现乱码——sxlstring path = ti.Path + "\\TestResult.txt";FileStream fs = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.ReadWrite);StreamReader sr = new StreamReader(fs, Encoding.Default);         //用于支持读取多字节文本,防止乱码--sxlstring data = sr.ReadLine();if (!string.IsNullOrEmpty(data) && (data.Contains("测试成功") || data_back.Contains("测试成功")))   //上面通过两种方式读取文本文件,如果不为空并且任何一种方式读取到测试结果文本,则测试成功--sxl{ti.Result = (int)TestResult.Success;dgvTestPrograms.Rows[i].Cells["Result"].Value = "测试成功";dgvTestPrograms.Rows[i].DefaultCellStyle.BackColor = Color.Green;}else{ti.Result = (int)TestResult.Fail;dgvTestPrograms.Rows[i].Cells["Result"].Value = "测试失败";dgvTestPrograms.Rows[i].DefaultCellStyle.BackColor = Color.Red;}fs.Close();//  new的对象没有关闭导致测试结果文本被进程占用,无法上传的问题sr.Close();}

c#读取文本文件出现乱码相关推荐

  1. 解决C#读取文本文件乱码

    在读取文本文件的内容时,如果里面有中文,常常出现乱码问题.一般原因主要是文本文件的编码不是UTF-8格式,而C#中读文件默认的编码是UTF-8,所以读出的是乱码. 解决办法是进行编码的转化. 代码如下 ...

  2. 使用字节流读取文本文件时,乱码问题的产生与解决

    问题: 使用字节流读取文本文件时,会将一个汉字劈成两半,一次只能读一半出来,产生了乱码,无法使用.就算是一次读取2个字节出来,也依然不能解决问题. 如何解决乱码问题,读出完整的汉字和中英文混杂的整篇文 ...

  3. python读取文件编码错误_Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)...

    很多情况下我们是这样读取文本文件的: with open(r'F:\.Python Project\spidertest1\test\pdd凉席.txt', 'r') as f: text = f.r ...

  4. Python 基于csv 读取文本文件提示:‘gbk‘ codec can‘t decode byte 0xbf in position 2: illegal multibyte sequence

    报错 Python 基于csv 读取文本文件提示:'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequenc ...

  5. python文本文件读取失败_Python 读取文本文件编码错误解决方案(未知文本文件编码情况下解决方案)...

    很多情况下我们是这样读取文本文件的: with open(r'F:\.Python Project\spidertest1\test\pdd凉席.txt', 'r') as f: text = f.r ...

  6. Java 读取文本文件

    文章目录 File FileReader InputStreamReader BufferedReader(解决方法在这里) 解决中文乱码 FileInputStream 我想用Java 读取文本文件 ...

  7. Delphi 读取文本文件的两种方式

    用两种方式读取文本文件:文件流读取和文件变量读取 一.文件流方式 {*******************************************************} {功能:读取文本文 ...

  8. R语言readLines函数、n.readLines函数、readline函数读取文本文件实战

    R语言readLines函数.n.readLines函数.readline函数读取文本文件实战 目录 R语言readLines函数.n.readLines函数.readline函数读取文本文件实战 # ...

  9. TCP协议客户端读取文本文件,服务器端输出到文本文件

    package cn.idcast11;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fil ...

  10. 使用fscanf读取文本文件

    fscanf为读取文本文件的一个c API,其特点是可格式化读取文件内容. 1 FILE* pf = fopen("c:\\hello.txt", "r"); ...

最新文章

  1. dom4j读写xml文件
  2. AMNO.6 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字
  3. 使用android ProgressBar和Toast生成一个界面
  4. Docker部署微服务详解
  5. 【TensorFlow】笔记2:深层神经网络
  6. 【HDU 1711】Number Sequence(裸KMP算法)
  7. Zookeeper选举算法( FastLeader选主)
  8. pycharm设置字体和背景色
  9. 【WebRTC---入门篇】(十八)WebRTC非音视频数据传输
  10. webScoket的浅短的认识
  11. linux用echo显示欢迎信息,我使用过的Linux命令之echo - 显示文本、打印信息
  12. 带你学习ES5中新增的方法
  13. 3文件提取器_奇淫巧技 | 快速批量提取 PPT 中所有图片素材方法
  14. 【springBoot】springBoot返回json的一个问题
  15. 让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~...
  16. 推荐一个不错的免费的asp空间
  17. uvalive 4987 Evacuation Plan 疏散计划
  18. office 2010 ppt 添加音乐等相关问题
  19. 2023年武汉市中等职业学校技能大赛 “网络搭建与应用”
  20. “图形驱动程序无法找到兼容的图形硬件”的处理方式

热门文章

  1. mycat mysql 主从_Mycat实现Mysql主从读写分离
  2. kafka消费者如何读同一生产者消息_kafka学习笔记
  3. 6 使用soap客户端_SOAP技术应用总结
  4. 使用FileZilla搭建简单的FTP
  5. 关于linux内核版本说法,关于Linux内核版本的说法,以下错误的是( )
  6. 必备技能:IDEA一定要懂的30条快捷键
  7. 程序员30岁后怎么办
  8. PC连Moto V180上网
  9. centos7 端口3306无法连接问题
  10. 类对象等式括号的意义