NET: Por que não é a base 64 em Encoding.GetEncodings ()?

votos
4

I têm uma função que pode descodificar uma matriz de bytes para uma cadeia de caracteres utilizando uma codificação especificada.

Exemplo:

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

Se eu quiser incluir base64 neste eu tenho que fazer algo como isto:

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

Por que é base64 tratada especial em .NET?

Publicado 09/04/2009 em 21:42
fonte usuário
Em outras línguas...                            


2 respostas

votos
22

Eles não são realmente a mesma coisa:

  • Codificações são formas de representar texto arbitrário na forma binária.
  • Base64 é uma maneira de representar dados binários arbitrários em forma de texto.

Você normalmente não iria usá-los nas mesmas circunstâncias. Você usaria uma codificação quando os dados "real" é texto, e base64 quando os dados "real" é binário.

Claro que você poderia implementar uma codificação para fazer base64, mas pessoalmente eu não acho que é uma boa idéia.

Respondeu 09/04/2009 em 21:45
fonte usuário

votos
-1

É em System.Convert

Respondeu 09/04/2009 em 21:45
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more