2014-03-27 186 views

回答

2

您可以使用该转换方法:

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

_that仍然是一个字符串_.... +1 –

+0

我想这就是他想要什么。 '到一串二进制' – MichaelS

+0

是的,我错过了他想要的部分“仍然是一个字符串” –

0

使用

string str = "Welcome"; 
byte []arr = System.Text.Encoding.ASCII.GetBytes(str); 
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()); 
+0

,反之亦然? –

+0

@罗伊纳米尔:请参阅我的编辑,反之亦然 –

相关问题