Encoding.GetString Encoding.GetString Encoding.GetString Encoding.GetString Method

定義

派生クラスでオーバーライドされた場合、バイト シーケンスを文字列にデコードします。When overridden in a derived class, decodes a sequence of bytes into a string.

オーバーロード

GetString(Byte[], Int32, Int32) GetString(Byte[], Int32, Int32) GetString(Byte[], Int32, Int32) GetString(Byte[], Int32, Int32)

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているバイト シーケンスを文字列にデコードします。When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a string.

GetString(Byte*, Int32) GetString(Byte*, Int32) GetString(Byte*, Int32)

派生クラスでオーバーライドされた場合、指定したアドレスで始まる指定したバイト数を文字列にデコードします。When overridden in a derived class, decodes a specified number of bytes starting at a specified address into a string.

GetString(Byte[]) GetString(Byte[]) GetString(Byte[]) GetString(Byte[])

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているすべてのバイトを文字列にデコードします。When overridden in a derived class, decodes all the bytes in the specified byte array into a string.

GetString(ReadOnlySpan<Byte>) GetString(ReadOnlySpan<Byte>) GetString(ReadOnlySpan<Byte>) GetString(ReadOnlySpan<Byte>)

GetString(Byte[], Int32, Int32) GetString(Byte[], Int32, Int32) GetString(Byte[], Int32, Int32) GetString(Byte[], Int32, Int32)

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているバイト シーケンスを文字列にデコードします。When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a string.

public:
 virtual System::String ^ GetString(cli::array <System::Byte> ^ bytes, int index, int count);
public virtual string GetString (byte[] bytes, int index, int count);
abstract member GetString : byte[] * int * int -> string
override this.GetString : byte[] * int * int -> string
Public Overridable Function GetString (bytes As Byte(), index As Integer, count As Integer) As String

パラメーター

bytes
Byte[]

デコード対象のバイト シーケンスが格納されたバイト配列。The byte array containing the sequence of bytes to decode.

index
Int32 Int32 Int32 Int32

デコードする最初のバイトのインデックス。The index of the first byte to decode.

count
Int32 Int32 Int32 Int32

デコードするバイト数。The number of bytes to decode.

戻り値

指定したバイト シーケンスのデコード結果が格納されている文字列。A string that contains the results of decoding the specified sequence of bytes.

例外

このバイト配列には、無効な Unicode コード ポイントが含まれています。The byte array contains invalid Unicode code points.

index または count が 0 未満です。index or count is less than zero.

- または --or- index および countbytes において有効な範囲を表していません。index and count do not denote a valid range in bytes.

フォールバックが発生しました (詳細な説明は、「.NET での文字エンコード」をご覧ください)A fallback occurred (see Character Encoding in .NET for complete explanation) および-and- DecoderFallbackDecoderExceptionFallback に設定されます。DecoderFallback is set to DecoderExceptionFallback.

次の例では、utf-8 でエンコードされた文字列を読み取りますで表されるバイナリ ファイルから、FileStreamオブジェクト。The following example reads a UTF-8 encoded string from a binary file that is represented by a FileStream object. バイト配列と呼び出しにファイル全体の内容を読み取り、2,048 バイト未満のファイルの場合、GetString(Byte[], Int32, Int32)デコードを実行するメソッド。For files that are smaller than 2,048 bytes, it reads the contents of the entire file into a byte array and calls the GetString(Byte[], Int32, Int32) method to perform the decoding. 大きなファイルの場合、2,048 バイト一度にを配列に読み取ったバイト、呼び出し、Decoder.GetCharCount(Byte[], Int32, Int32)文字の数を決定する方法が、配列内に含まれているしを呼び出して、Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32)デコードを実行するメソッド。For larger files, it reads 2,048 bytes at a time into a byte array, calls the Decoder.GetCharCount(Byte[], Int32, Int32) method to determine how many characters are contained in the array, and then calls the Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) method to perform the decoding.

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

public class Example
{
   const int MAX_BUFFER_SIZE = 2048;
   static Encoding enc8 = Encoding.UTF8;
   static byte[] bytes = new byte[MAX_BUFFER_SIZE]; 

   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) {
         int bytesRead = fStream.Read(bytes, 0, bytes.Length);
         contents = enc8.GetString(bytes, 0, bytesRead);
      }   
      // If file size exceeds buffer size, perform multiple reads.
      else {
         contents = ReadFromBuffer(fStream);
      }
      fStream.Close();
      Console.WriteLine(contents);
   }

    private static string ReadFromBuffer(FileStream fStream)
    {
        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.
Imports System.IO
Imports System.Text

Module Example
   Const MAX_BUFFER_SIZE As Integer = 2048
   
   Dim enc8 As Encoding = Encoding.UTF8
   Dim bytes(MAX_BUFFER_SIZE -1) As Byte
      
   Public Sub Main()
      Dim fStream As New FileStream(".\Utf8Example.txt", FileMode.Open)
      Dim contents As String = Nothing
      
      ' If file size is small, read in a single operation.
      If fStream.Length <= MAX_BUFFER_SIZE Then
         
         Dim bytesRead As Integer = fStream.Read(bytes, 0, bytes.Length)
         contents = enc8.GetString(bytes, 0, bytesRead)
      ' If file size exceeds buffer size, perform multiple reads.
      Else
         contents = ReadFromBuffer(fStream)
      End If
      fStream.Close()
      Console.WriteLine(contents)
   End Sub   

    Private Function ReadFromBuffer(fStream As FileStream) As String
        Dim bytes(MAX_BUFFER_SIZE) As Byte
        Dim output As String = String.Empty
        Dim decoder8 As Decoder = enc8.GetDecoder()
      
        Do While fStream.Position < fStream.Length
           Dim nBytes As Integer = fStream.Read(bytes, 0, bytes.Length)
           Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
           Dim chars(nChars - 1) As Char
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
           output += New String(chars, 0, nChars)                                                     
        Loop
        Return output
    End Function
End Module
' 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 でエンコードされたファイルに保存する必要がありますを使用します。The example uses the following text, which should be saved to a UTF-8 encoded file named Utf8Example.txt.


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.  

注釈

変換されるデータがストリームから読み取られたデータ) などの連続したブロック内でのみ使用可能な場合、またはデータの量が非常に大きいので、小さなブロックに分割する必要がある、使用する必要があります、DecoderまたはEncoderによって提供される、 GetDecoderメソッドまたはGetEncoderメソッドでは、派生クラスのそれぞれに、します。If the data to be converted is available only in sequential blocks (such as data read from a stream) or if the amount of data is so large that it needs to be divided into smaller blocks, you should use the Decoder or the Encoder provided by the GetDecoder method or the GetEncoder method, respectively, of a derived class.

「解説」を参照してください、Encoding.GetCharsデコード手法および考慮事項の詳細については、リファレンス トピック。See the Remarks section of the Encoding.GetChars reference topic for a discussion of decoding techniques and considerations.

こちらもご覧ください

GetString(Byte*, Int32) GetString(Byte*, Int32) GetString(Byte*, Int32)

重要

この API は CLS 準拠ではありません。

派生クラスでオーバーライドされた場合、指定したアドレスで始まる指定したバイト数を文字列にデコードします。When overridden in a derived class, decodes a specified number of bytes starting at a specified address into a string.

public:
 System::String ^ GetString(System::Byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public string GetString (byte* bytes, int byteCount);
member this.GetString : nativeptr<byte> * int -> string

パラメーター

bytes
Byte*

バイト配列へのポインター。A pointer to a byte array.

byteCount
Int32 Int32 Int32 Int32

デコードするバイト数。The number of bytes to decode.

戻り値

指定したバイト シーケンスのデコード結果が格納されている文字列。A string that contains the results of decoding the specified sequence of bytes.

例外

bytes が null ポインターです。bytes is a null pointer.

フォールバックが発生しました (詳細な説明は、「.NET での文字エンコード」をご覧ください)A fallback occurred (see Character Encoding in .NET for a complete explanation) および-and- DecoderFallbackDecoderExceptionFallback に設定されます。DecoderFallback is set to DecoderExceptionFallback.

注釈

GetStringメソッドはバイト配列へのネイティブ ポインターがある場合は、パフォーマンスを最適化するために設計されています。The GetString method is designed to optimize performance when you have a native pointer to a byte array. マネージ バイト配列を作成し、それをデコードし、代わりに、中間オブジェクトを作成することがなく、代わりにこのメソッドを呼び出すことができます。Instead of creating a managed byte array and then decoding it, you can instead call this method without having to create any intermediate objects.

変換されるデータがストリームから読み取られたデータ) などの連続したブロック内でのみ使用可能な場合、またはデータの量が非常に大きいので、小さなブロックに分割する必要がある、使用する必要があります、Decoderによって返されるオブジェクト、GetDecoder派生のメソッドved クラスです。If the data to be converted is available only in sequential blocks (such as data read from a stream) or if the amount of data is so large that it needs to be divided into smaller blocks, you should use the Decoder object returned by the GetDecoder method of a derived class.

「解説」を参照してください、Encoding.GetCharsデコード手法および考慮事項の詳細については、リファレンス トピック。See the Remarks section of the Encoding.GetChars reference topic for a discussion of decoding techniques and considerations.

注意の動作の詳細、GetString特定のメソッドEncoding実装によって異なりますが定義されているフォールバック ストラテジEncodingオブジェクト。Note that the precise behavior of the GetString method for a particular Encoding implementation depends on the fallback strategy defined for that Encoding object. 詳細については、「フォールバック ストラテジを選択する」セクションを参照してください、 .NET における文字エンコーディングトピック。For more information, see the "Choosing a Fallback Strategy" section of the Character Encoding in .NET topic.

こちらもご覧ください

GetString(Byte[]) GetString(Byte[]) GetString(Byte[]) GetString(Byte[])

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているすべてのバイトを文字列にデコードします。When overridden in a derived class, decodes all the bytes in the specified byte array into a string.

public:
 virtual System::String ^ GetString(cli::array <System::Byte> ^ bytes);
public virtual string GetString (byte[] bytes);
abstract member GetString : byte[] -> string
override this.GetString : byte[] -> string
Public Overridable Function GetString (bytes As Byte()) As String

パラメーター

bytes
Byte[]

デコード対象のバイト シーケンスが格納されたバイト配列。The byte array containing the sequence of bytes to decode.

戻り値

指定したバイト シーケンスのデコード結果が格納されている文字列。A string that contains the results of decoding the specified sequence of bytes.

例外

このバイト配列には、無効な Unicode コード ポイントが含まれています。The byte array contains invalid Unicode code points.

フォールバックが発生しました (詳細な説明は、「.NET での文字エンコード」をご覧ください)A fallback occurred (see Character Encoding in .NET for complete explanation) および-and- DecoderFallbackDecoderExceptionFallback に設定されます。DecoderFallback is set to DecoderExceptionFallback.

次の例では、utf-8 でエンコードされた文字列を読み取りますで表されるバイナリ ファイルから、FileStreamオブジェクト。The following example reads a UTF-8 encoded string from a binary file represented by a FileStream object. バイト配列と呼び出しにファイル全体の内容を読み取り、2,048 バイト未満のファイルの場合、GetString(Byte[])デコードを実行するメソッド。For files that are smaller than 2,048 bytes, it reads the contents of the entire file into a byte array and calls the GetString(Byte[]) method to perform the decoding. 大きなファイルの場合、2,048 バイト一度にを配列に読み取ったバイト、呼び出し、Decoder.GetCharCount(Byte[], Int32, Int32)文字の数を決定する方法が、配列内に含まれているしを呼び出して、Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32)デコードを実行するメソッド。For larger files, it reads 2,048 bytes at a time into a byte array, calls the Decoder.GetCharCount(Byte[], Int32, Int32) method to determine how many characters are contained in the array, and then calls the Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) method to perform the decoding.

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.
Imports System.IO
Imports System.Text

Module Example
   Const MAX_BUFFER_SIZE As Integer = 2048
   
   Dim enc8 As Encoding = Encoding.UTF8
      
   Public Sub Main()
      Dim fStream As New FileStream(".\Utf8Example.txt", FileMode.Open)
      Dim contents As String = Nothing
      
      ' If file size is small, read in a single operation.
      If fStream.Length <= MAX_BUFFER_SIZE Then
         Dim bytes(CInt(fStream.Length) - 1) As Byte
         fStream.Read(bytes, 0, bytes.Length)
         contents = enc8.GetString(bytes)
      ' If file size exceeds buffer size, perform multiple reads.
      Else
         contents = ReadFromBuffer(fStream)
      End If
      fStream.Close()
      Console.WriteLine(contents)
   End Sub   

    Private Function ReadFromBuffer(fStream As FileStream) As String
        Dim bytes(MAX_BUFFER_SIZE) As Byte
        Dim output As String = String.Empty
        Dim decoder8 As Decoder = enc8.GetDecoder()
      
        Do While fStream.Position < fStream.Length
           Dim nBytes As Integer = fStream.Read(bytes, 0, bytes.Length)
           Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
           Dim chars(nChars - 1) As Char
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
           output += New String(chars, 0, nChars)                                                     
        Loop
        Return output
    End Function
End Module
' 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 でエンコードされたファイルに保存する必要がありますを使用します。The example uses the following text, which should be saved to a UTF-8 encoded file named Utf8Example.txt.


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.  

注釈

変換されるデータがストリームから読み取られたデータ) などの連続したブロック内でのみ使用可能な場合、またはデータの量が非常に大きいので、小さなブロックに分割する必要がある、使用する必要があります、Decoderによって返されるオブジェクト、GetDecoder派生のメソッドved クラスです。If the data to be converted is available only in sequential blocks (such as data read from a stream) or if the amount of data is so large that it needs to be divided into smaller blocks, you should use the Decoder object returned by the GetDecoder method of a derived class.

「解説」を参照してください、Encoding.GetCharsデコード手法および考慮事項の詳細については、リファレンス トピック。See the Remarks section of the Encoding.GetChars reference topic for a discussion of decoding techniques and considerations.

注意の動作の詳細、GetString特定のメソッドEncoding実装によって異なりますが定義されているフォールバック ストラテジEncodingオブジェクト。Note that the precise behavior of the GetString method for a particular Encoding implementation depends on the fallback strategy defined for that Encoding object. 詳細については、「フォールバック ストラテジを選択する」セクションを参照してください、 .NET における文字エンコーディングトピック。For more information, see the "Choosing a Fallback Strategy" section of the Character Encoding in .NET topic.

こちらもご覧ください

GetString(ReadOnlySpan<Byte>) GetString(ReadOnlySpan<Byte>) GetString(ReadOnlySpan<Byte>) GetString(ReadOnlySpan<Byte>)

public:
 System::String ^ GetString(ReadOnlySpan<System::Byte> bytes);
public string GetString (ReadOnlySpan<byte> bytes);
member this.GetString : ReadOnlySpan<byte> -> string
Public Function GetString (bytes As ReadOnlySpan(Of Byte)) As String

パラメーター

戻り値

適用対象