将字符串修剪/截断为最大字节数

时间:2015-01-29 11:18:29

标签: vb.net string byte bytearray truncate

我正在使用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()

1 个答案:

答案 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