如何从字符串中删除二进制内容?

时间:2015-11-07 04:01:51

标签: string go id3

我试图使用golang从mp3文件中读取ID3标签 我得到了结果。但是他们还包含一些二进制内容,正如我的database viewer所暗示的那样。

picture

有什么方法可以在golang中删除该内容吗?

1 个答案:

答案 0 :(得分:0)

这是id3-go中的当前问题:PR 8修复了id3v1

但这对于id3v2来说还不够,如show in this commit,它必须修剪这些空字符。 请参阅cutset := string(rune(0))TrimRight(s string, cutset string)的使用情况,例如strings.TrimRight(fd.Title(), cutset)

fd, err := id3.Open(path)
if err != nil {
    item.Title = f.Name()
} else {
    defer fd.Close()
    cutset := string(rune(0))
    title := strings.TrimRight(fd.Title(), cutset)
    author := strings.TrimRight(fd.Artist(), cutset)
    if len(title) > 0 {
        item.Title = title
    } else {
        item.Title = author
        if len(author) > 0 {
            item.Title += " - "
        }
        item.Title += strings.TrimRight(f.Name(), cutset)
    }
    item.Subtitle = author
    tcon := fd.Frame("TCON")
    if tcon != nil {
        item.Categories = append(item.Categories, Text{Value: strings.TrimRight(tcon.String(), cutset)})
    }
    item.PubDate = strings.TrimRight(formatYear(fd.Year()), cutset)