串口通讯中出现的乱码问题(中文出现乱码,字母正常)

liangbinger 2003-03-23 11:34:27
我写了一个串口通讯的程序(异步),接受字母很正常,但是一旦发送汉字,接受到的就是乱码。好像是字母与汉字所占的字节不一样而造成的。但不知道该怎么解决。
请各位大师帮忙!谢谢!
...全文
1346 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangbinger 2003-03-23
  • 打赏
  • 举报
回复
三位大师:你们说的这个问题,我倒是没想过,也没用过。请问怎么设置传输模式为二进制?
做二进制的传递?谢谢!
AaronChan 2003-03-23
  • 打赏
  • 举报
回复
YES
设置传输模式为二进制
doublesword 2003-03-23
  • 打赏
  • 举报
回复
是这样的!
alion 2003-03-23
  • 打赏
  • 举报
回复
汉字的是占两个字节的位置而且是ASCII值大于128的,你需要把他们做二进制的传递才可以,不做文本字符处理,我前些日子,才做的这个问题。
liangbinger 2003-03-23
  • 打赏
  • 举报
回复
请各位大师帮忙!谢谢!!
liangbinger 2003-03-23
  • 打赏
  • 举报
回复
谢谢大家,问题解决了,按照梁青青所说,在要发送的字符串末尾加上一个特殊的字符作为终止符。接收端有终止符判断,等都接受完璧,一并显示,这样就避免了中文乱码
mlogic 2003-03-23
  • 打赏
  • 举报
回复
楼主这种简单的应用,在“待发送的数据”的首尾添加简单的“起始符”和“终止符”应该就可以。
mlogic 2003-03-23
  • 打赏
  • 举报
回复
可靠的通讯依赖于严格的通讯协议,这样才能处理通讯中的“错位”“丢位”的现象。楼主说到的情况,可能是因为英文字符(非Unicode)之间没有互相依赖的关系,但是中文(双字节)字符存在“单个字符之内的”联系。所以英文“似乎是没有问题的”,但是传送中文就会崩溃。
楼主可以用简单的帧将要发送的数据封装起来,这样可以避免接收程序在“一个中文字符内中断”。
3jaja 2003-03-23
  • 打赏
  • 举报
回复
串口数据发送本来就是按位发送的。关键是你的接收数据时读入的位数不对造成的,比如握手信号是否处理好,数据位是否丢失等,调试时可以检测发送一定数量的数据,接收时收到的数据是否数量相同等。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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