【问题标题】:Trim/Truncate string to a maximum number of bytes将字符串修剪/截断为最大字节数
【发布时间】:2015-01-29 11:18:28
【问题描述】:

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

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

我知道如何获取字符串的字节长度,但希望能够将字符串修剪到最多 30 个字节,减去 ... 的字节数,以便在需要的地方修剪标题到“这是标题的一部分...”,其中总长度为

编辑:

澄清一下;

标题是字符串值,必须是

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

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

然后我得到字节长度:

Dim L as integer =  bytes.length()

接下来我需要只获取前 30 个字节并转换回字符串(即简单的 bytes.FromAsciiBytes()

【问题讨论】:

  • 如果您显示一些代码会有所帮助。从您的问题和您应用的标签来看,尚不清楚您是否有字符串或字节数组。
  • 好吧,我也可以!我有一个字符串,我需要它的长度 "this strng"..ToAsciiBytes()

标签: vb.net string byte bytearray truncate


【解决方案1】:
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2015-07-25
    相关资源
    最近更新 更多