65

バイナリ値で返されたテキストファイルの内容を受け取りました。

Byte[] buf = new Byte[size];
stream = File.InputStream;
stream.Read(buf, 0, size);

これをASCIIに変換するにはどうすればよいですか?

4

5 に答える 5

118

使用する:

System.Text.Encoding.ASCII.GetString(buf);

于 2011-07-02T03:07:44.880 に答える
14

次を使用できます。

System.Text.Encoding.ASCII.GetString(buf);

ただし、必要な文字列ではなく、奇妙な数字が表示される場合があります。その場合、元の文字列を表示すると、16進文字が含まれる可能性があります。その場合は、次のことを試してみてください。

System.Text.Encoding.UTF8.GetString(buf);

または最後の手段として:

System.Text.Encoding.Default.GetString(bytearray);
于 2011-07-02T03:22:59.093 に答える
6
Encoding.ASCII.GetString(buf);
于 2011-07-02T03:07:56.167 に答える
3

ストリームからバイト配列にデータを読み取る代わりに、フレームワークにすべてを処理させStreamReader、ASCIIエンコーディングのセットアップを使用して文字列を読み取ることができます。そうすれば、適切なバッファサイズやより大きなデータサイズを取得することを心配する必要はありません。

using (var reader = new StreamReader(stream, Encoding.ASCII))
{
    string theString = reader.ReadToEnd();
    // do something with theString
}
于 2011-07-02T03:22:43.603 に答える
1

Encoding.GetStringメソッド(Byte [])は、バイトを文字列に変換します。

派生クラスでオーバーライドされると、指定されたバイト配列のすべてのバイトが文字列にデコードされます。

名前空間:System.Text
アセンブリ:mscorlib(mscorlib.dll内)

構文

public virtual string GetString(byte[] bytes)

パラメーター

bytes
    Type: System.Byte[]
    The byte array containing the sequence of bytes to decode.

戻り値

タイプ:System.String
指定されたバイトシーケンスのデコード結果を含む文字列。

例外

ArgumentException        - The byte array contains invalid Unicode code points.
ArgumentNullException    - bytes is null.
DecoderFallbackException - A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) or DecoderFallback is set to DecoderExceptionFallback.

備考

変換するデータがシーケンシャルブロック(ストリームから読み取られたデータなど)でのみ使用できる場合、またはデータ量が多すぎて小さなブロックに分割する必要がある場合、アプリケーションは提供されているデコーダーまたはエンコーダーを使用する必要があります派生クラスのGetDecoderメソッドまたはGetEncoderメソッドによってそれぞれ。

デコードの手法と考慮事項の詳細については、Encoding.GetCharsの備考を参照してください。

于 2011-07-02T03:37:11.170 に答える