问题描述:
在esp32上做一个文件服务器,通过浏览器上传一个文件,文件名是中文的,保存到sd卡上的时候,通过电脑查看,发现文件名是乱码,刚开始的时候,以为是通过url传输的文件名编码是utf-8,电脑上显示可能是gb2312,所以在esp32上,先把文件名utf-8转为unicode,然后再通过查表转为gb2312,反复测试N次,还是乱码,并且在电脑上显示的乱码编码也是非常奇怪。估计fat底层又用别的编码进行了转换。
然后在网上查找各种资料,终于看到一份给了我启发:
https://www.csdn.net/tags/MtTaMg1sODEzMDk1LWJsb2cO0O0O.html
原来只需要修改menuconfig中Component config →FAT Filesystem support里面的API character encoding 为utf-8即可,浪费了两天时间,太想当然了。