Как добавить юникод в тег ID3 с помощью ruby? - PullRequest
1 голос
/ 04 июля 2011

Я пытаюсь добавить заголовок Unicode к тегу ID3 (v2.3) в MP3. К сожалению, я не могу понять, как это сделать. Согласно странице id3v2 id3.org , строки Unicode должны начинаться с спецификации Unicode.

В настоящее время я пытаюсь использовать id3v2, но тег сохраняется как бред.

Я бы хотел сделать это в ruby, но также подойдет утилита linux.

Обновление: Я нашел решение, используя гем id3lib-ruby . Это перечислено ниже.

Ответы [ 2 ]

2 голосов
/ 04 июля 2011

Вы пытались encode() строка?

1 голос
/ 05 июля 2011

Обновление : найдено более элегантное решение
Я нашел решение, которое работает с использованием 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 (\ xFF \ xFE), то в конце вашего тега вы получите бессмысленный символ.

...