串口如何发送中文(汉字)??? C#

lzycome 2007-11-06 08:50:39
C#如何发送,汉字到串口助手!!!

串口调试助手收到的是:??????????????

请指点!!!!!
...全文
2310 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zhangcs1028 2012-07-18
  • 打赏
  • 举报
回复
学习了
帮帮你我她 2011-11-21
  • 打赏
  • 举报
回复
XP下的很多方法,也好做,加码解码方式一样用GB2312或默认,就可以了。
最近刚做了个CE下的串口调试助手,中文支持较好,是另一种方法的,
关键技术是,统一为字节接收,接收到字节流后,使用缓冲技术,保留
最后一个,不能显示的半个字节,留做和下次一起在判定。
每次收到的字节流均需判定最后一字节是否是半个汉字的前部,是前部
则存入缓冲区。
铜臂阿铁木 2011-11-21
  • 打赏
  • 举报
回复
发byte[] 至于串口终端怎么识别 是串口终端的事情了。
兔子-顾问 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sp1234 的回复:]
如果你知识扎实一点会知道:通讯是字节流,跟中文还是图画没有关系。

这个时候,再提出问题就容易与同事沟通了。
[/Quote]


+1

和工具无关,设置Encoding为Encoding.GetEncoding(936)
然后Write就可以了
颠颠小白牙 2011-11-21
  • 打赏
  • 举报
回复
二楼你太牛了,这个问题困扰我好久了。。。。。
jimh 2011-10-05
  • 打赏
  • 举报
回复
SerialPort 支持的通信都是字节流,至于内容,看你两边处理软件的协议了,反正,发送方不管是字符串还是图片数据什么的,所有内容都要先处理成一个byte[],然后发送。接收方根据协议自己还原数据。
个人感觉使用二进制序列化和反序列化比较简单,直接使用dotnet的功能,不需要自己另外写编码解码函数了。
lee_guet 2011-10-05
  • 打赏
  • 举报
回复
VC中串口怎么发送中文汉字啊?
ycproc 2011-06-08
  • 打赏
  • 举报
回复
二进制 发送吧
  • 打赏
  • 举报
回复
如果你知识扎实一点会知道:通讯是字节流,跟中文还是图画没有关系。

这个时候,再提出问题就容易与同事沟通了。
至尊贱客 2011-06-08
  • 打赏
  • 举报
回复
谁能帮我解决一下问题。。。谢谢 。。。地址(http://topic.csdn.net/u/20110608/17/ea387470-0398-4bb3-b92a-68a37f63cd16.html?31016)
mjp1234airen4385 2011-06-08
  • 打赏
  • 举报
回复
把数据直接转换成byte[]数组就没有关系了。
持知以恒 2011-06-08
  • 打赏
  • 举报
回复
2楼正解 多谢指点 顶顶顶~
无常名 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ffuu 的回复:]
串口助手不支持中文 超级终端可以


C# code

public SerialPort m_sp;

// 串口初始化
private void InitializeMy()
{
string strT;
strT = textBox1.Text;

……
[/Quote]
正解
doubleu2005 2010-05-12
  • 打赏
  • 举报
回复
串口接的终端是什么?发送英文还是中文与串口并口无关!
路人乙e 2010-05-12
  • 打赏
  • 举报
回复
将字符串转换为unicode
public static string ToUnicode(string str)
{
byte[] data = Encoding.BigEndianUnicode.GetBytes(str);
int i = 0;
StringBuilder sb = new StringBuilder();
foreach (byte b in data)
{
if (i++ % 2 == 0) sb.Append("\\u");
sb.AppendFormat("{0:X2}", b);
}
return sb.ToString();
}
更多实用帮助函数下载:http://download.csdn.net/source/2277988
beyongmind 2010-05-12
  • 打赏
  • 举报
回复
设置字符集
System.Text.Encoding.GetEncoding("GB2312");
ffuu 2008-01-10
  • 打赏
  • 举报
回复
串口助手不支持中文 超级终端可以


public SerialPort m_sp;

// 串口初始化
private void InitializeMy()
{
string strT;
strT = textBox1.Text;

try
{
m_sp = new SerialPort();
m_sp.BaudRate = 57600;
m_sp.StopBits = StopBits.One;
m_sp.Parity = Parity.None;
m_sp.DataBits = 8;
m_sp.Handshake = Handshake.None;
m_sp.DataReceived += OnSerialDataReceived;
m_sp.Encoding = System.Text.Encoding.GetEncoding("GB2312");
}
catch (System.Exception e)
{
MessageBox.Show(e.Message);
}

}


就可以发中文了
lzycome 2007-11-06
  • 打赏
  • 举报
回复
没人做过呢?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧