如何将字符串反转为二进制

Ath*_*han 2 c# string binary

foreach (byte binaryOutupt in Encoding.ASCII.GetBytes(fileLine))
{
       fileOutput.Write(binaryOutupt.ToString("x2"));
 }
Run Code Online (Sandbox Code Playgroud)

我得到了这段代码,可以让我将字符串字节转换为十六进制,但如何反转呢?

Dan*_*ner 6

这是完整往返的示例,包括您的编码。

// Input
String input = "Test1234";

// Encoding
String outputA = String.Empty;  
foreach (Byte b in Encoding.ASCII.GetBytes(input))
{
    outputA += b.ToString("X2");
}

// Decoding
Byte[] bytes = new Byte[outputA.Length / 2];
for (Int32 i = 0; i < outputA.Length / 2; i++)
{
    bytes[i] = Convert.ToByte(outputA.Substring(2 * i, 2), 16);
}
String outputB = Encoding.ASCII.GetString(bytes);

// Output
Console.WriteLine(input);
Console.WriteLine(outputA);
Console.WriteLine(outputB);
Run Code Online (Sandbox Code Playgroud)

这只是一个指向正确方向的示例 - 显然,StringBuilder如果输入包含无效字符或具有奇数长度,则应该使用 s 并在生产代码中执行一些错误处理。