我正在尝试编写一个需要读取 mp3 标签的工具。目前,我使用 id3lib,但如果文本字符串包含非 ASCII 字符,我在解释它们时会遇到问题。我发现即使是 libid3 附带的命令行工具 id3info 也存在标签问题。对于我的样本歌曲(艺术家:Die Ärzte;标题:Dinge von denen;专辑:Geräusch),当 id3info、mp3info 和 exiftool 时,我得到以下结果。
mischa@mischa-t420:~/workspace/mivabeing/miv/tests/data/mp3$ id3info song.mp3
*** Tag information for song.mp3
=== TALB (Album/Movie/Show title): Gerdusch
=== TPE1 (Lead performer(s)/Soloist(s)): Die Drzte
=== TIT2 (Title/songname/content description): Dinge Von Denen
=== TRCK (Track number/Position in set): 5
*** mp3 info
MPEG1/layer III
Bitrate: 192KBps
Frequency: 44KHz
mischa@mischa-t420:~/workspace/mivabeing/miv/tests/data/mp3$ mp3info song.mp3
File: song.mp3
Title: Dinge Von Denen Track: 5
Artist: Die �rzte
Album: Ger�usch Year:
Comment: Genre: [255]
mischa@mischa-t420:~/workspace/mivabeing/miv/tests/data/mp3$ exiftool -json song.mp3
[{
"Album": "Geräusch",
"Artist": "Die Ärzte",
"Title": "Dinge Von Denen",
.....
}]
id3info 将“Ä”解释为“D”,将“ä”解释为“d”。mp3info 通过“�”解释“Ä”和“ä”。exiftool 正确解释“Ä”和“ä”。
我是否错误地使用了 id3info?你认为这是 ID3lib 中的错误吗?您知道用于 mp3 标签检索的替代 C/C++ 库吗?
最好的问候迈克尔