乐鑫技术交流
直播中

李维嘉

7年用户 1414经验值
私信 关注
[问答]

idf.py打印汉字总是带上菱形问号,为什么?

idf.py 打印日志中汉字的总是带上菱形问号,如下所示:

I (615) wifi:security: WPA2-PSK, phy: bgn, rssi: -42
I (615) wifi:pm start, type: 1

I (615) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 25000, mt_pti: 0, mt_time: 10000
I (625) wifi:AP's beacon interval = 102400 us, DTIM period = 2
I (1035) wifi:idx:0 (ifx:0, 20:76:93:46:9b:be), tid:0, ssn:0, winSize:64
I (1635) esp_netif_handlers: sta ip: 192.168.123.130, mask: 255.255.255.0, gw: 192.168.123.1
I (1635) TEST_ESP32: Got IP: 192.168.123.130
I (1635) TEST_ESP32:  set event group.
Socket ���创���建���成���功Socket ���创���建���成���功I (1645) SERVICE: ���绑���定���成���功
I (1645) CLIENT: ���连���接���成���功
I (1645) SERVICE: ���监���听���成���功
I (1645) CLIENT: ���退���出
I (1655) SERVICE: ���准���备accept

尝试把当前的代码页调整为utf-8/eng也是一样的结果,win10环境,默认代码页gbk,
也没有什么大的影响,就是看着不舒服...
请问怎么调整idf.py以避免此问题呢?
                                         

回帖(1)

h1654155275.5748

2024-6-7 11:02:14
这个问题可能是由于字符编码不正确导致的。在 Python 中,通常使用 UTF-8 编码。如果你的代码或日志文件使用的是其他编码,可能会导致汉字显示为菱形问号。

要解决这个问题,你可以尝试以下方法:

1. 确保你的代码文件使用 UTF-8 编码。你可以在文本编辑器中检查和修改文件编码。

2. 在打印汉字之前,确保将字符串转换为 UTF-8 编码。例如:

```python
print("汉字".encode("utf-8").decode("utf-8"))
```

3. 如果问题仍然存在,检查你的终端或日志查看器是否支持 UTF-8 编码。如果不支持,你可能需要更改终端或日志查看器的设置。

4. 如果你使用的是 ESP32 或 ESP8266 等硬件,确保硬件的串口输出也支持 UTF-8 编码。你可能需要在硬件的固件中进行相应的设置。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分