この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Encoding.GetString メソッド (Byte[])

 

公開日: 2016年10月

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているすべてのバイトを文字列にデコードします。

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

public virtual string GetString(
	byte[] bytes
)

パラメーター

bytes
Type: System.Byte[]

デコード対象のバイト シーケンスが格納されたバイト配列。

戻り値

Type: System.String

指定したバイト シーケンスのデコード結果が格納されている文字列。

Exception Condition
ArgumentException

バイト配列には、無効な Unicode コード ポイントが含まれています。

ArgumentNullException

bytesnull です。

DecoderFallbackException

フォールバックが発生しました (詳細については、「.NET Framework における文字エンコーディング」を参照してください)。

および

DecoderFallbackDecoderExceptionFallback に設定されます。

変換するデータが (データのストリームからの読み取り) などの連続したブロック内でのみ使用可能な場合、またはデータの量が非常に大きいので、小さなブロックに分割する必要がある、使用する必要があります、 Decoder によって返されるオブジェクト、 GetDecoder 派生クラスのメソッドです。

「解説」セクションを参照してください、 Encoding.GetChars デコード手法および考慮事項については、リファレンス トピックです。

正確な動作、 GetString 、特定のメソッド Encoding の実装が定義されているフォールバック ストラテジに依存 Encoding オブジェクトです。 詳細については、「フォールバック ストラテジを選択する」セクションを参照してください、 .NET Framework における文字エンコーディング トピックです。

次の例では、utf-8 でエンコードされた文字列を読み取りますによって表されるバイナリ ファイルから、 FileStream オブジェクトです。 2,048 バイトよりも小さいファイルの場合、バイト配列の呼び出しにファイル全体の内容を読み取りますが、 GetString(Byte[]) のデコードを実行するメソッドです。 大きいファイルの場合、2,048 バイトずつ読み込むを呼び出し、バイト配列に、 Decoder.GetCharCount(Byte[], Int32, Int32) 文字列の文字数を決定する方法は、配列に含まれを呼び出して、 Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) のデコードを実行するメソッドです。

using System;
using System.IO;
using System.Text;

public class Example
{
   const int MAX_BUFFER_SIZE = 2048;
   static Encoding enc8 = Encoding.UTF8;

   public static void Main()
   {
      FileStream fStream = new FileStream(@".\Utf8Example.txt", FileMode.Open);
      string contents = null;

      // If file size is small, read in a single operation.
      if (fStream.Length <= MAX_BUFFER_SIZE) {
         Byte[] bytes = new Byte[fStream.Length];
         fStream.Read(bytes, 0, bytes.Length);
         contents = enc8.GetString(bytes);
      }
      // If file size exceeds buffer size, perform multiple reads.
      else {
         contents = ReadFromBuffer(fStream);
      }
      fStream.Close();
      Console.WriteLine(contents);
   }

   private static string ReadFromBuffer(FileStream fStream)
   {
        Byte[] bytes = new Byte[MAX_BUFFER_SIZE];
        string output = String.Empty;
        Decoder decoder8 = enc8.GetDecoder();

        while (fStream.Position < fStream.Length) {
           int nBytes = fStream.Read(bytes, 0, bytes.Length);
           int nChars = decoder8.GetCharCount(bytes, 0, nBytes);
           char[] chars = new char[nChars];
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0);
           output += new String(chars, 0, nChars);                                                     
        }
        return output;
    }
}
// The example displays the following output:
//     This is a UTF-8-encoded file that contains primarily Latin text, although it
//     does list the first twelve letters of the Russian (Cyrillic) alphabet:
//     
//     А б в г д е ё ж з и й к
//     
//     The goal is to save this file, then open and decode it as a binary stream.

例は、Utf8Example.txt をという名前の utf-8 でエンコードされたファイルに保存する必要がありますが、次のテキストを使用します。


This is a UTF-8-encoded file that contains primarily Latin text, although it 
does list the first twelve letters of the Russian (Cyrillic) alphabet:

А б в г д е ё ж з и й к

The goal is to save this file, then open and decode it as a binary stream.

ユニバーサル Windows プラットフォーム
10 以降で使用可能
.NET Framework
1.1 以降で使用可能
トップに戻る
表示: