将字符串转换为二进制字符串

时间:2014-03-27 12:01:07

标签: c# visual-studio-2013

我的目标是能够将字符串转换为仍然是字符串的二进制代码。我能够将字符串转换为byte []但不能将字符串转换为字符串而不解码它。

3 个答案:

答案 0 :(得分:2)

您可以使用Convert方法:

byte [] bytesToEncode = Encoding.UTF8.GetBytes (inputText);
string encodedText = Convert.ToBase64String (bytesToEncode);

答案 1 :(得分:1)

如果您可以编码/解码字节,例如

private static String ToBinary(Byte value) {
  StringBuilder Sb = new StringBuilder(8);

  Sb.Length = 8;

  for (int i = 0; i < 8; ++i) {
    Sb[7 - i] = (Char) ('0' + value % 2);

    value /= 2;
  }

  return Sb.ToString();
}

private static Byte FromBinary(String value) {
  int result = 0;

  for (int i = 0; i < value.Length; ++i)
    result = result * 2 + value[i] - '0';

  return (Byte) result;
}

您可以轻松编码/解码整个字符串

  // Encoding... 
  String source = "abc";

  // 011000010110001001100011
  String result = String.Join("", UTF8Encoding.UTF8.GetBytes(source).Select(x => ToBinary(x)));

  ... 

  // Decoding...
  List<Byte> codes = new List<Byte>();

  for (int i = 0; i < result.Length; i += 8) 
    codes.Add(FromBinary(result.Substring(i, 8)));

  // abc
  String sourceBack = UTF8Encoding.UTF8.GetString(codes.ToArray());

答案 2 :(得分:0)

使用

string str = "Welcome"; 
byte []arr = System.Text.Encoding.ASCII.GetBytes(str);