按照FILELIB4/EAXM11得到LongNameBuf怎么整出长文件名

参照那个程序,已经能由段文件名找出长文件名,串口输出如下所示

测试串口 CH375LibInit()返回值:0x0,操作成功 请连接U盘.... U盘已经连接 U盘初始化完毕 CH375DiskSize()返回值:0x0,操作成功 U盘有115个扇区 文件列表如下 /偶阵雨.MP3 x:0073 /三寸日光.MP3 x:008a /我的歌~1.MP3 x:00a1 Get long Name# CH375GetLongName CH375FileOpen( )返回值:0x0,操作成功 CheckNameSum CH375vFdtOffset取值为352 offset取值为352 CH375GetLongName( )返回值:0x0,操作成功 LongNameBuf: 62 11 76 84 6B 4C 58 F0 91 CC 00 2E 00 6D 00 70 00 33 00 00 FF FF .............DE AD FB BE 76 4F 90 BF

我知道长文件名存放在LongNameBuf指针里面,可是一旦加入printf("%s\n",LongNameBuf); 就会出现乱码(乱七八糟的中文,英文混合的东西),这是怎么回事儿??这个该怎么整????

长文件名获取的是UNICODE编码,不是ASCII编码。所以你看的时候会出现乱码。中文的话需要通过转换成ASCII才行的。这个你可以去看下FAT文件系统资料。


@hcn 版主大人,那你的意思是需要自己写一个函数,用于实现将UNICODE转成ASCII编码吗??这个有木有现成的例子,还是必须的自己写一个啊


是的 我们没有现成的例子,需要你自己编写。


只有登录才能回复,可以选择微信账号登录