1

我正在尝试将 unicode 标题添加到 MP3 的 ID3 标签(v2.3)。不幸的是,我不知道该怎么做。根据id3.org 的 id3v2 page,Unicode 字符串必须以 Unicode BOM 开头。

我目前正在尝试 id3v2,但标签保存为乱码。

我想用 ruby​​ 来做,但 linux 实用程序也是可以接受的。

更新: 我想出了一个使用id3lib-ruby gem 的解决方案。它在下面列出。

4

2 回答 2

2

你试过encode()串吗?

于 2011-07-04T11:07:50.830 回答
1

更新:找到了一个稍微优雅的解决方案
我想出了一个使用id3lib-ruby gem 的解决方案。

tag = ID3Lib::Tag.new('talk.mp3')
utf16 = Iconv.conv('UTF-16BE', 'UTF-8', str) #UTF-16BE doesn't have BOM
tag << {:id => :TIT2, :textenc => 1, :text => utf16} 

utf16 = Iconv.conv('UTF-16', 'UTF-8', str)
utf16_no_bom = utf16[2..-1] #删除BOM
标签 << {:id => :TIT2, :textenc => 1 , :text => utf16_no_bom}

id3lib.rb (第 105 行)中的这种用法注释有点误导。如果您设置 :textenc => 1 并包含 UTF-16 BOM (\xFF\xFE),那么您最终会在标签开头出现乱码。

于 2011-07-04T23:45:49.993 回答