https://blog.csdn.net/weixin_43455581/article/details/107161289
问题叙述:
默认情况下,ROS_INFO是不支持中文编码的,如果在终端打印一些中文字符串,会显示一连串???
解决方案:
将编码修改为utf8,程序开题添加如下代码:
setlocale(LC_CTYPE,“zh_CN.utf8”);
关键是setlocale(LC_CTYPE,“zh_CN.utf8”)添加的位置,
不是放在程序一开始,是放在rofo _info这个函数前面
1
setlocale()函数用于设置程序所使用的当前语言编码、日期格式、数字格式及其它与区域有关的设置,该函数位于头文件#include <locale.h>,对于C++程序,应该包含#include,但此时应这样初始化:std::locale::global(std::locale("")),方便起见,建议使用C版。
效果: