2011-05-15 15 views
5

こんにちは .. 10101011を使用してASCII文字列をバイナリに変換できました。返信する必要がありますBinary --->ASCII文字列..任意のアイデアをそれを行うには?対応するASCII文字列変換へのバイナリ

+1

System.Text.Encoding.ASCII.GetString(data)? –

+3

Convert.ToBase64String(data)の何が問題になっていますか?なぜバイトをストリームに押し込んで、それらのバイトをそのストリームからもう一度読み込むのですか? –

+0

'ToBase64String'は、テキストではなくBase64の値を返します! – Sudantha

答えて

18

このトリックを行う必要があります...または、少なくともあなたが始める...

public Byte[] GetBytesFromBinaryString(String binary) 
{ 
    var list = new List<Byte>(); 

    for (int i = 0; i < binary.Length; i += 8) 
    { 
    String t = binary.Substring(i, 8); 

    list.Add(Convert.ToByte(t, 2)); 
    } 

    return list.ToArray(); 
} 

バイナリ文字列をバイト配列に変換された後、

Encoding.ASCII.GetString(data); 
で終えます

そう...

var data = GetBytesFromBinaryString("010000010100001001000011"); 
var text = Encoding.ASCII.GetString(data); 
+0

ロットコーダーありがとうございました..まさに私が必要としていて、すごくうまく作業しています!私は一日中ブラックアウトをしていました。どうもありがとう ! :D – Sudantha

+0

@Sudantha:それは正しい質問をするのに役立ちます。 –

+0

@Sudantha:私はあなたの2つの同じ質問をマージしました。この回答をもう一度受け入れることができます(もう1つの質問で受け入れられました)。 – balpha

1

簡単な例として、これを持っ:このリンク答えは変換のこの種についての興味深い詳細を持っている

public void ByteToString() 
{ 
    Byte[] arrByte = { 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 }; 

    string x = Convert.ToBase64String(arrByte); 
} 

binary file to string

+0

私は 'byte []'に変換する文字列を持っています。 'Encoding.ASCHII'を使用しました....しかし、 – Sudantha

+0

@Sudantha:リンクされた答えを見てください... –

2

ここにあなたのanswer

FileStream iFile = new FileStream(@"c:\test\binary.dat", 
FileMode.Open); 

long lengthInBytes = iFile.Length; 

BinaryReader bin = new BinaryReader(aFile); 

byte[] byteArray = bin.ReadBytes((int)lengthInBytes); 

System.Text.Encoding encEncoder = System.Text.ASCIIEncoding.ASCII; 

string str = encEncoder.GetString(byteArray); 
ための完全なコードがあります
+0

良い点があります。 –

5

ASCIIの場合チャーターだけEncoding.ASCII.GetBytesEncoding.ASCII.GetStringを使用することができます。

var text = "Test"; 
var bytes = Encoding.ASCII.GetBytes(text); 
var newText = Encoding.ASCII.GetString(bytes); 
0

Sometimそれは「生」ASCII値を使用してABCを返さ010000010100001001000011でテスト

public string BinaryToString(string binary) 
{ 
    if (string.IsNullOrEmpty(binary)) 
     throw new ArgumentNullException("binary"); 

    if ((binary.Length % 8) != 0) 
     throw new ArgumentException("Binary string invalid (must divide by 8)", "binary"); 

    StringBuilder builder = new StringBuilder(); 
    for (int i = 0; i < binary.Length; i += 8) 
    { 
     string section = binary.Substring(i, 8); 
     int ascii = 0; 
     try 
     { 
      ascii = Convert.ToInt32(section, 2); 
     } 
     catch 
     { 
      throw new ArgumentException("Binary string contains invalid section: " + section, "binary"); 
     } 
     builder.Append((char)ascii); 
    } 
    return builder.ToString(); 
} 

:ES代わりのツールに組み込まれて使用するには、この機能を試してみてください..「カスタム」コードを使用することをお勧めします。

関連する問題