Trim/Truncate 字符串到最大字节数

Trim/Truncate string to a maximum number of bytes

我正在 ASP.NET 编码 VB 中处理一些 MP3,并且遇到了一些与 ID3 标签长度限制相关的问题。

似乎大多数标签都有 30 个字节的限制。

我知道如何获取字符串的字节长度,但希望能够 trim 一个字符串最多 30 个字节,减去 ... 的字节数,所以在需要的地方,我可以 trim 标题到 "this is part of a title..." ,总长度 <= 30 字节。

编辑:

澄清一下;

标题是字符串值,必须 <= 30 个字节。

使用 ServiceStack 我可以轻松地将我的字符串转换为字节数组:

Dim bytes as byte() = "This title".ToAsciiBytes()

然后我得到以字节为单位的长度:

Dim L as integer =  bytes.length()

接下来我需要的是 仅获取前 30 个字节 并转换回字符串(就是 bytes.FromAsciiBytes()

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