读取MP3文件信息乱码有关问题(有些MP3)
读取MP3文件信息乱码问题(有些MP3)
读取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);
}
请问怎么解决少数出现乱码的问题啊
------解决方案--------------------
F:\\不正常,显示乱码.mp3
文件叫这名字,里面实际不是软码??
------解决方案--------------------
char tag[4] = {0};
char name[31] = {0};
char singer[31] = {0};
char aname[31] = {0};
都初始化为0看看
------解决方案--------------------
这样读ID3V1里面的信息应该没什么问题
里面的信息就是存放在固定位置的
不足的会补'\0'
建议你用notepad++之类的文本编辑软件打开MP3文件看看是否本身它里面存放的就是乱码信息
------解决方案--------------------
notepad++读出来的也是乱码信息?
那就说明MP3文件的ID3V1信息不正确
你就不用纠结了
------解决方案--------------------
------解决方案--------------------
读取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);
}
请问怎么解决少数出现乱码的问题啊
------解决方案--------------------
F:\\不正常,显示乱码.mp3
文件叫这名字,里面实际不是软码??
------解决方案--------------------
char tag[4] = {0};
char name[31] = {0};
char singer[31] = {0};
char aname[31] = {0};
都初始化为0看看
------解决方案--------------------
这样读ID3V1里面的信息应该没什么问题
里面的信息就是存放在固定位置的
不足的会补'\0'
建议你用notepad++之类的文本编辑软件打开MP3文件看看是否本身它里面存放的就是乱码信息
------解决方案--------------------
notepad++读出来的也是乱码信息?
那就说明MP3文件的ID3V1信息不正确
你就不用纠结了
------解决方案--------------------
------解决方案--------------------