790

2つの文字列でバイト配列を作成しました。バイト配列を文字列に変換するにはどうすればよいですか?

var binWriter = new BinaryWriter(new MemoryStream());
binWriter.Write("value1");
binWriter.Write("value2");
binWriter.Seek(0, SeekOrigin.Begin);

byte[] result = reader.ReadBytes((int)binWriter.BaseStream.Length);

文字列に変換したいresult。を使用して実行できましたが、使用BinaryReaderできませんBinaryReader(サポートされていません)。

4

4 に答える 4

1279

使用するエンコーディングに応じて:

var str = System.Text.Encoding.Default.GetString(result);
于 2012-07-25T16:41:52.210 に答える
353

UTF-8エンコーディングを使用していると仮定します。

string convert = "This is the string to be converted";

// From string to byte array
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(convert);

// From byte array to string
string s = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length);
于 2012-07-25T16:55:50.353 に答える
28

BlockCopyを使用すると、エンコーディングを処理せずにそれを行うことができます。

char[] chars = new char[bytes.Length / sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
string str = new string(chars);
于 2012-12-15T20:36:50.700 に答える
12

byte[]をstring[]に変換するには、以下の行を使用するだけです。

byte[] fileData; // Some byte array
//Convert byte[] to string[]
var table = (Encoding.Default.GetString(
                 fileData, 
                 0, 
                 fileData.Length - 1)).Split(new string[] { "\r\n", "\r", "\n" },
                                             StringSplitOptions.None);
于 2013-05-22T12:31:51.933 に答える