4

我有一个函数可以使用指定的编码将字节数组解码为字符串。

例子:

Function Decode(ByVal bytes() As Byte, ByVal codePage As String) As String
    Dim enc As Text.Encoding = Text.Encoding.GetEncoding(codePage)
    Return enc.GetString(bytes)
End Function

如果我想在其中包含 base64,我必须这样做:

Function Decode(ByVal bytes() As Byte, ByVal codePage As String) As String
    If String.Compare(codePage, "base64", True) = 0 Then
        Return Convert.ToBase64String(bytes)
    Else
        Dim enc As Text.Encoding = Text.Encoding.GetEncoding(codePage)
        Return enc.GetString(bytes)
    End If
End Function

为什么 base64 在 .NET 中被特殊对待?

4

2 回答 2

22

他们真的不是一回事:

  • 编码是以二进制形式表示任意文本的方式。
  • Base64 是一种以文本形式表示任意二进制数据的方法。

您通常不会在相同的情况下使用它们。当“真实”数据是文本时,您将使用编码,而当“真实”数据是二进制时,您将使用 base64。

当然你可以实现一个编码来做base64,但我个人认为这不是一个好主意。

于 2009-04-09T20:45:28.803 回答
-1

它在 System.Convert

于 2009-04-09T20:45:12.533 回答