标题:C#串口发送文件出现乱码
取消只看楼主
hyd
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-3
 问题点数:0 回复次数:0 
C#串口发送文件出现乱码
我做了一个串口调试软件,在发送文件时总是出现乱码,求大神帮助,急急急!!!
//导入文件数据源
  string fileData = string.Empty;
  private void cbx_fileSend_CheckedChanged(object sender, EventArgs e)
  {
  if (!serialPort1.IsOpen)
  {
  MessageBox.Show("请先打开串口");
   
  return;
   
  }
  else if (cbx_fileSend.Checked)
  {
  OpenFileDialog openFile = new OpenFileDialog();
  openFile.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";

  if (openFile.ShowDialog() == DialogResult.OK)
  {
  string fileName = openFile.FileName;
  using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
  {
  while (!sr.EndOfStream)
  {
  fileData = sr.ReadLine();
  }
  }
  txt_send.Text = "文件 " + fileName + " 已经被导入";
  txt_send.Enabled = false;
  }
  }
   
  else
  {
  txt_send.Enabled = true;
  txt_send.Text = "";
  }
   
  }

  //发送文件
  private void sendFile()
  {
   
  byte[] wtiteBytes = Encoding.Default.GetBytes(fileData);
  serialPort1.Write(wtiteBytes, 0, wtiteBytes.Length);
  }
  //接收数据事件
  private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
  {
  byte[] readByte = new byte[serialPort1.BytesToRead];
  serialPort1.Read(readByte, 0, readByte.Length);
   
  string s = Encoding.Default.GetString(readByte);
  this.txt_receive.Text=s;
  }

为什么这种方法接收到的数据是乱码??直接在发送框里输入汉字可以正常发送,却不能发送文件。试过了将编码改成unicode UTF8格式,都是乱码。
搜索更多相关主题的帖子: void 软件 文本文件 private return 
2012-07-22 23:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-373910-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.213103 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved