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

How to remove binary content from the strings?

我正在尝试使用 golang 从 mp3 文件中读取 ID3 标签。
我得到了结果。但正如我的 database viewer 建议的那样,它们也包含一些二进制内容。

有什么方法可以删除 golang 中的内容?

这是 id3-go: PR 8 中的一个当前问题,已针对 id3v1

修复

但这对于 id3v2 来说还不够,正如 in this commit 所示,它必须 trim 那些空字符。 请参阅 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)