请教读取串口中文编码的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3966|回复: 5

[已解决] 请教读取串口中文编码的问题

[复制链接]
发表于 2019-4-28 23:25 | 显示全部楼层 |阅读模式
在学习EEPROM的过程中,想把汉字编码存在EEPROM中,再读出来发送到串口,在网上查找到汉字编码后,写入char[]数组后,读出来组合成字符串输出是乱码,通过读取串口发过来的数据,汉字编码居然不同,还是3个字节才能组成一个汉字!汉字不都是2个字节一个吗?

void loop()
{
  comdata="";
  char temp;

  while(Serial.available()>0)
  {
    temp=char(Serial.read());
    Serial.print(temp,HEX);
    Serial.print(':');
    comdata+=temp;
    delay(10);
  }

  if(comdata!="")
  {
    Serial.println(comdata);
  }
}



输出的结果是这样的:

运行结果

运行结果

请各位大神帮忙解读下,谢谢了!
发表于 2019-4-28 23:57 | 显示全部楼层
编码问题,UTF8编码的,占3~4个字节
 楼主| 发表于 2019-4-29 12:37 | 显示全部楼层
还想请问老师,我在网上用汉字转UTF8转换成汉字编码怎么还是2个字节,如“你”转换成UTF8编码为4F60;怎么和我在串口接收到的字节不同啊,串口接收到的是0xe4,0xb0,0xa0,我将这3个字节组合后输出到串口就显示了“你“,还是没搞懂,请指教!谢谢了。
 楼主| 发表于 2019-4-29 12:47 | 显示全部楼层
谢谢老师了,在网上找了资料,应该是先前的网站输出的汉字编码是错的,根本不是UTF8编码,又找了个网站输出正确的UTF8编码,谢谢了!
发表于 2021-2-18 17:35 | 显示全部楼层
请问下我的Nodemcu D7,D8串口接收的短信的数据是中文乱码怎么回事
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 12:38 , Processed in 0.078273 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表