.NET:为什么在Encoding.GetEncodings()中不是base 64?

时间:2009-04-09 20:42:52

标签: .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,我必须做这样的事情:

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中处理特殊?

2 个答案:

答案 0 :(得分:22)

他们真的不是一回事:

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

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

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

答案 1 :(得分:-1)

它在System.Convert