读取MP3文件信息乱码问题(有些MP3)

gzw6870 2011-06-03 12:36:30
读取MP3的ID3V1在末尾处128个字节后,绝大部分是正常的,但少数读出来的是乱码,代码如下:

FILE *pFile;

pFile = fopen("F:\\不正常,显示乱码.mp3","rb+");

if(pFile!=NULL)

{

char strbuf[129];



fseek(pFile,-128,2);



int ret = 0;



ret = fread(strbuf,128,1,pFile);



char tag[4];

char name[31];

char singer[31];

char aname[31];



memcpy(&tag,&strbuf[0],3);

memcpy(&name,&strbuf[3],30);

memcpy(&singer,&strbuf[33],30);

memcpy(&aname,&strbuf[63],30);

fclose(pFile);

}


请问怎么解决少数出现乱码的问题啊
...全文
364 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 johnson562 的回复:]

文件名是我改了,是为了记住这个MP3是乱码的。实际上是MP3文件来的,能播放的,只不过读出来的文件信息乱码而已。

都初始化为0,也还是乱码来的。

notepad++之类的文本编辑软件打开MP3文件看到相应的文件信息与我读出来的一样,也是乱码来的。

高级指点下,怎么处理这样的问题
[/Quote]
是不是这些数据是加密,或者所谓的私有数据?
luciferisnotsatan 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 johnson562 的回复:]

文件名是我改了,是为了记住这个MP3是乱码的。实际上是MP3文件来的,能播放的,只不过读出来的文件信息乱码而已。

都初始化为0,也还是乱码来的。

notepad++之类的文本编辑软件打开MP3文件看到相应的文件信息与我读出来的一样,也是乱码来的。

高级指点下,怎么处理这样的问题
[/Quote]
文件信息本身就是乱码,那读出来当然就是乱码。又不能从乱码里猜出原来是什么。
就想叫yoko 2011-06-03
  • 打赏
  • 举报
回复
notepad++读出来的也是乱码信息?
那就说明MP3文件的ID3V1信息不正确
你就不用纠结了
gzw6870 2011-06-03
  • 打赏
  • 举报
回复
文件名是我改了,是为了记住这个MP3是乱码的。实际上是MP3文件来的,能播放的,只不过读出来的文件信息乱码而已。

都初始化为0,也还是乱码来的。

notepad++之类的文本编辑软件打开MP3文件看到相应的文件信息与我读出来的一样,也是乱码来的。

高级指点下,怎么处理这样的问题
就想叫yoko 2011-06-03
  • 打赏
  • 举报
回复
这样读ID3V1里面的信息应该没什么问题
里面的信息就是存放在固定位置的
不足的会补'\0'
建议你用notepad++之类的文本编辑软件打开MP3文件看看是否本身它里面存放的就是乱码信息
luciferisnotsatan 2011-06-03
  • 打赏
  • 举报
回复

char tag[4] = {0};

char name[31] = {0};

char singer[31] = {0};

char aname[31] = {0};

都初始化为0看看
luciferisnotsatan 2011-06-03
  • 打赏
  • 举报
回复
F:\\不正常,显示乱码.mp3

文件叫这名字,里面实际不是软码??

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧