在网上下载了beyond的mp3文件,发现看起来没问题,一旦加入到音乐软件就会乱码,看起来说因为音乐文件加载到元数据
思路参考了这个文章
解决Mac电脑音乐显示歌名的乱码问题_音频文件乱码-CSDN博客
不过这个只能解决名称乱码,我发现专辑名也会乱码,因此进行了调整
from mutagen.id3 import ID3, TIT2,TALB
import os
import glob
# 指定你想要遍历的文件夹路径
folder_path = '/xxxx/Beyond-MP3' # 替换为你的文件夹路径
# 使用glob来获取所有MP3文件
mp3_files = glob.glob(os.path.join(folder_path, '*.mp3'))
# 遍历所有MP3文件
for mp3_file in mp3_files[:]:
# 打开文件
audio = ID3(mp3_file)
# 读取歌曲名
title = audio.get('TIT2')
album=audio.get('TALB')
if title:
print("Current title:", title.text[0])
# 修改歌曲名
audio["TIT2"] = TIT2(encoding=3, text=os.path.basename(mp3_file))
if album:
current_album = album.text[0]
print("Current album:", current_album)
# 尝试解码为 latin1 并重新编码为 utf-8
try:
decoded_album = current_album.encode('latin1').decode('utf-8')
except UnicodeError:
# 如果解码过程失败,则可能不是 latin1 编码
print('解码失败')
decoded_album = current_album
print("Decoded album:", decoded_album)
# 修改专辑名为新的名字
audio["TALB"] = TALB(encoding=3, text=decoded_album)
# 保存修改
audio.save()
效果如下:
已经不会出现乱码
注意:因为我发现专辑名称是使用的latin1进行编码的,需要根据自己的文件的编码进行调整