问题描述:自己写的程序里一直用cout来显示信息,据说ROS自己的ROS INFO和printf函数功能一样,还显示时间戳,这就很棒了啊。 于是把cout << "我要显示的中文内容" << endl;替换为了ROS_INF("我要显示的中文内容");.。但是在终端中就变成了:
[ INFO] [15676745345.234235252]: ????????????????????????
解决办法:大概知道是编码有问题,网上查了挺多,最后解决方式是,在函数开头加入下面代码的任意一句即可:
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, ""); // 我用的是这一句,亲测ok