问题描述
使用mscomm收数据时收到一些乱码如'?b?B?尋@)'好像是ascII的一些字符,用串口工具调试时只要把用hex显示打勾就可可以正常显示16进制的数字,请问改怎么转换?我用mscomm发这些乱码字符的话改怎么转换呢?
解决方案
解决方案二:
mscomm收到的是byte[]吗?如果是,你看一下你用哪中Encoding,可能是Encoding的选择不对,比如试试:Encoding.UTF8;.Net自带了下面这些://Getdifferentencodings.Encodingu7=Encoding.UTF7;Encodingu8=Encoding.UTF8;Encodingu16LE=Encoding.Unicode;Encodingu16BE=Encoding.BigEndianUnicode;Encodingu32=Encoding.UTF32;
解决方案三:
Encoding.UTF7;Encoding.UTF8;Encoding.Unicode;Encoding.BigEndianUnicode;Encoding.UTF32;我每个都试过了,还是乱码代码是这样的System.Text.Encodingencoding=System.Text.Encoding.UTF8;byte[]bTemp=(byte[])this.axMSComm1.Input;//数据送数组Stringtemp=Encoding.Unicode.GetString(bTemp);textBox_RecASC.Text=temp;
解决方案四:
更正一下,代码第3行是stringtemp=encoding.GetString(bTemp);
解决方案五:
我看了一下ASCII表,好像这些就是ASCII表里的字符,该字符对应的16进制数就是正确的数字,我该怎么转换呢?
解决方案六:
我用DELPHI编的,也出现乱码情况,在网上搜索说是MSCOMM自身的BUG,不知该怎么办了
解决方案七:
建议楼主还是用API,MSCOMM貌似不可靠
解决方案八:
MSComm1.InputMode=comInputModeText将输入模式设置成文本形式试下吧
解决方案九:
靠,这帖字这么长时间都没结