我正在使用VB中的ASP.NET编码中的一些MP3,并且遇到了ID3标签长度限制的几个问题。
似乎大多数标签都有30个字节的限制。
我知道如何获取字符串的长度(以字节为单位),但希望能够将字符串修剪为最多30个字节,减去许多字节...
,以便在需要时我可以修剪标题为“这是标题的一部分...”,其中总数<= 30字节。
编辑:
澄清;
标题是字符串值,必须是&lt; = 30字节。
使用ServiceStack我可以轻松地将我的字符串转换为字节数组:
Dim bytes as byte() = "This title".ToAsciiBytes()
然后我得到字节长度:
Dim L as integer = bytes.length()
接下来需要的是只抓取前30个字节并转换回字符串(只是bytes.FromAsciiBytes()
)
答案 0 :(得分:0)
Public Function FormatTitle(ByVal title As String) As String
Dim byte() As Byte = Encoding.ASCII.GetBytes(title)
If bytes.Length > 30 Then
Dim dot As Byte = 46 'ascii value of "."
bytes(27) = dot
bytes(28) = dot
bytes(29) = dot
Array.Resize(bytes, 30)
End If
Return Encoding.ASCII.GetString(bytes)
End Function