关于ESP8266串口输出中文时出现乱码的解决方案

关于ESP8266串口输出中文时出现乱码的解决方案

  • 前言
  • 一、问题描述
  • 二、原因查找
  • 三、问题解决
  • 方法一:
  • 方法二:
  • 前言

    本人之前并没有c语言的项目编程经验,第一次使用ESP8266以及Eclipse编程环境,因此犯了诸多新手会犯的错误,但在网上查找相关问题时发现许多初级错误并不能完整的找到解决办法,因此希望将个人踩过的坑分享出来,如果有初学者遇到类似问题可以得到较快解决方案。

    一、问题描述

    日前,本人在学习8266时发现,串口输出的中文会出现乱码问题

    二、原因查找

    由于初学原因,什么问题都不懂,于是在网上查资料发现可能是硬件、波特率、或者汉字编码问题。但本人使用硬件为成品模组,故排除硬件连接问题,而英文正常显示,因此判断波特率并未出现问题。

    确定是编码问题后,查资料发现可能是因为开发环境中的文件编码出现问题,而安信可串口调试助手只支持GBK格式显示,于是换用支持UTF-8的串口助手后发现中文正常显示,联想到之前弹出过什么“Save as UTF-8”的选项后更加确定了该想法。

    该情况出现原因:大概率是由于复制了UTF-8格式的程序及注释,导致保存失败。而失败后对话框会询问是否将编码格式变为UTF-8,点击后就会出现该问题。

    将乱码复制到转码网站发现问题的确如此,原文为UTF-8格式,安信可串口助手里的乱码是GBK格式。

    乱码恢复网站:
    http://www.mytju.com/classcode/tools/messyCodeRecover.asp

    但通过相关(如下贴)帖子的方法查看Eelipse中的相关设置后发现,设置均为默认,并未能解决问题。

    解决Eclipse中文乱码问题:
    https://blog.csdn.net/qq_45697630/article/details/115382382

    三、问题解决

    方法一:

    尝试很多次后,终于明白,只是user_main.c文件的编码出现了问题。

    解决办法为:右击user_main.c > Properites > Resource> Text file encoding,选择编码格式为Default(括号里面懒得打了,)即可。但进行该操作后原文件中的所有中文就会变为乱码。因此需要重新输入。可结合方法2使用。

    出问题原因:

    方法二:

    根据该帖方法:

    STC51和STM32使用串口输出中文乱码问题解决
    https://blog.csdn.net/qq_40242571/article/details/117842182

    1.Windows中找到该.c文件;

    2.选择记事本打开;
    3.选择另存为;
    4.修改编码格式为ASCI ;

    5.将另存为的文件替换掉原文件;
    6.Eclipse中对项目refresh即可。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 关于ESP8266串口输出中文时出现乱码的解决方案

    发表评论