| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1475 人关注过本帖
标题:C#串口发送文件出现乱码
只看楼主 加入收藏
hyd
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-1-3
收藏
 问题点数:0 回复次数:1 
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
a1147865669
Rank: 1
等 级:禁止发言
帖 子:12
专家分:0
注 册:2012-7-30
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2012-07-31 09:35
快速回复:C#串口发送文件出现乱码
数据加载中...
 
   



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

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