如何将字符串转换为base64字节数组,这是否有效?

Tom*_*ter 33 .net c# string base64 bytearray

我正在尝试编写一个将字符串转换为base64字节数组的函数.我尝试过这种方法:

public byte[] stringToBase64ByteArray(String input)
{
    byte[] ret = System.Text.Encoding.Unicode.GetBytes(input);
    string s = Convert.ToBase64String(input);
    ret = System.Text.Encoding.Unicode.GetBytes(s);
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

此函数是否会产生有效结果(假设字符串是unicode)?谢谢!

Son*_*hja 58

您可以使用:

从byte []到string:

byte[] array = somebytearray;

string result = Convert.ToBase64String(array);

从字符串到字节[]:

array = Convert.FromBase64String(result);

  • 这些都不会将非 Base64 字符串转换为字节数组 (3认同)
  • Convert.FromBase64String 必须获取已经是 base64 的字符串。它不适用于常规字符串。这不是回答问题。 (2认同)

Han*_*ant 20

看起来没问题,虽然方法很奇怪.但是使用Encoding.ASCII.GetBytes()将base64字符串转换为byte [].Base64编码仅包含ASCII字符.使用Unicode会为每个字符增加一个0字节.