.NET:为什么不是&x27;编码中的t base 64.GetEncodings()?

.NET:为什么不是&x27;编码中的t base 64.GetEncodings()?,.net,encoding,character-encoding,base64,.net,Encoding,Character Encoding,Base64,我有一个函数,可以使用指定的编码将字节数组解码为字符串 例如: 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,我必须执行以下操作: Fun

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

例如:

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中被认为是特殊的?

它在System.Convert中。它们实际上不是一回事:

  • 编码是以二进制形式表示任意文本的方法
  • Base64是一种以文本形式表示任意二进制数据的方法
你通常不会在同样的情况下使用它们。当“真实”数据为文本时,使用编码;当“真实”数据为二进制时,使用base64


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

好吧,OP在问题中使用了它,所以我不确定这是一个巨大的启示…@Marc:“巨大的启示”。。。洛兹!!