【问题标题】:.NET: Why isn't base 64 in Encoding.GetEncodings()?.NET:为什么 Encoding.GetEncodings() 中没有 base 64?
【发布时间】:2009-04-09 20:42:51
【问题描述】:

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

例子:

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 中被特殊对待?

【问题讨论】:

    标签: .net encoding character-encoding base64


    【解决方案1】:

    它们真的不是一回事:

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

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

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

    【讨论】:

      【解决方案2】:

      它在 System.Convert 中

      【讨论】:

      • 好吧,OP 在问题中使用它,所以我不确定这是一个巨大的启示......
      • @Marc : “巨大的启示”... LOLzzz!!
      猜你喜欢
      • 2017-12-25
      • 2019-08-17
      • 2010-09-15
      • 2011-01-04
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多