UTF8Encoding.GetByteCount UTF8Encoding.GetByteCount UTF8Encoding.GetByteCount UTF8Encoding.GetByteCount Method

定義

文字のセットをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding a set of characters.

オーバーロード

GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>)

指定された文字スパンをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding the specified character span.

GetByteCount(String) GetByteCount(String) GetByteCount(String) GetByteCount(String)

指定した String 内の文字をエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding the characters in the specified String.

GetByteCount(Char*, Int32) GetByteCount(Char*, Int32) GetByteCount(Char*, Int32)

指定した文字ポインターで始まる文字のセットをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.

GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32)

指定した文字配列から文字のセットをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding a set of characters from the specified character array.

GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>)

指定された文字スパンをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding the specified character span.

public:
 override int GetByteCount(ReadOnlySpan<char> chars);
public override int GetByteCount (ReadOnlySpan<char> chars);
override this.GetByteCount : ReadOnlySpan<char> -> int
Public Overrides Function GetByteCount (chars As ReadOnlySpan(Of Char)) As Integer

パラメーター

chars
ReadOnlySpan<Char>

エンコードする文字のセットを格納するスパン。The span that contains the set of characters to encode.

戻り値

指定された文字スパンをエンコードすることによって生成されるバイト数。The number of bytes produced by encoding the specified character span.

例外

エラーの検出が有効になり、chars に無効な文字のシーケンスが含まれています。Error detection is enabled, and chars contains an invalid sequence of characters.

フォールバックが発生しました (詳細な説明は、「.NET Framework における文字エンコーディング」をご覧ください)A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) および-and- EncoderFallbackEncoderExceptionFallback に設定されます。EncoderFallback is set to EncoderExceptionFallback.

注釈

結果のバイトを格納するためGetBytesにで必要とされる正確なサイズGetByteCountを計算するには、メソッドを呼び出します。To calculate the exact size required by GetBytes to store the resulting bytes, you call the GetByteCount method. 最大サイズを計算するには、 GetMaxByteCountメソッドを呼び出します。To calculate the maximum size, you call the GetMaxByteCount method. メソッドは通常、より少ないメモリを割り当てGetMaxByteCountますが、メソッドは通常、より高速に実行されます。 GetByteCountThe GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

エラー検出を使用すると、無効なシーケンスによってArgumentExceptionこのメソッドが例外をスローします。With error detection, an invalid sequence causes this method to throw an ArgumentException exception. エラー検出を行わないと、無効なシーケンスは無視され、例外はスローされません。Without error detection, invalid sequences are ignored, and no exception is thrown.

エンコードされたバイトがファイルまたはストリームとして保存されるときに正しくデコードされるようにするには、エンコードされたバイトのストリームにプリアンブルを付けることができます。To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. ファイルに書き込む一連のバイトの先頭に、プリアンブルをバイトストリームの先頭に挿入することは、開発者の責任であり、プリアンブル内のバイト数はGetByteCountメソッドによって返される値には反映されません。Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

GetByteCount(String) GetByteCount(String) GetByteCount(String) GetByteCount(String)

指定した String 内の文字をエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding the characters in the specified String.

public:
 override int GetByteCount(System::String ^ chars);
public override int GetByteCount (string chars);
override this.GetByteCount : string -> int
Public Overrides Function GetByteCount (chars As String) As Integer

パラメーター

chars
String String String String

エンコード対象の文字のセットを格納している StringThe String containing the set of characters to encode.

戻り値

指定した文字をエンコードすることによって生成されるバイト数。The number of bytes produced by encoding the specified characters.

例外

結果のバイト数が、整数として返すことのできる最大数を超えています。The resulting number of bytes is greater than the maximum number that can be returned as an integer.

エラーの検出が有効になり、chars に無効な文字のシーケンスが含まれています。Error detection is enabled, and chars contains an invalid sequence of characters.

フォールバックが発生しました (詳細な説明は、「.NET Framework における文字エンコーディング」をご覧ください)A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) および-and- EncoderFallbackEncoderExceptionFallback に設定されます。EncoderFallback is set to EncoderExceptionFallback.

次の例ではGetMaxByteCountGetByteCount(String)メソッドとメソッドを呼び出して、文字列をエンコードするために必要な最大バイト数と実際のバイト数を計算します。The following example calls the GetMaxByteCount and GetByteCount(String) methods to calculate the maximum and actual number of bytes required to encode a string. また、バイト順マーク付きでバイトストリームを格納するために必要な実際のバイト数も表示されます。It also displays the actual number of bytes required to store a byte stream with a byte order mark.

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        String chars = "UTF8 Encoding Example";
        Encoding utf8 = Encoding.UTF8;

        Console.WriteLine("Bytes needed to encode '{0}':", chars);
        Console.WriteLine("   Maximum:         {0}",
                          utf8.GetMaxByteCount(chars.Length));
        Console.WriteLine("   Actual:          {0}",
                          utf8.GetByteCount(chars));
        Console.WriteLine("   Actual with BOM: {0}",
                          utf8.GetByteCount(chars) + utf8.GetPreamble().Length);
    }
}
// The example displays the following output:
//       Bytes needed to encode 'UTF8 Encoding Example':
//          Maximum:         66
//          Actual:          21
//          Actual with BOM: 24
Imports System.Text

Module Example
    Public Sub Main()
        Dim chars As String = "UTF8 Encoding Example"
        Dim utf8 As Encoding = Encoding.UTF8

        Console.WriteLine("Bytes needed to encode '{0}':", chars)
        Console.WriteLine("   Maximum:         {0}",
                          utf8.GetMaxByteCount(chars.Length))
        Console.WriteLine("   Actual:          {0}",
                          utf8.GetByteCount(chars))
        Console.WriteLine("   Actual with BOM: {0}",
                          utf8.GetByteCount(chars) + utf8.GetPreamble().Length)
    End Sub
End Module
' The example displays the following output:
'       Bytes needed to encode 'UTF8 Encoding Example':
'          Maximum:         66
'          Actual:          21
'          Actual with BOM: 24

注釈

が結果のバイトを格納GetBytesするために必要な配列の正確なサイズを計算するには、 GetByteCountメソッドを呼び出します。To calculate the exact array size required by GetBytes to store the resulting bytes, you call the GetByteCount method. 配列の最大サイズを計算するには、 GetMaxByteCountメソッドを呼び出します。To calculate the maximum array size, you call the GetMaxByteCount method. メソッドは通常、より少ないメモリを割り当てGetMaxByteCountますが、メソッドは通常、より高速に実行されます。 GetByteCountThe GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

エラー検出を使用すると、無効なシーケンスによってArgumentExceptionこのメソッドが例外をスローします。With error detection, an invalid sequence causes this method to throw an ArgumentException exception. エラー検出を行わないと、無効なシーケンスは無視され、例外はスローされません。Without error detection, invalid sequences are ignored, and no exception is thrown.

エンコードされたバイトがファイルまたはストリームとして保存されるときに正しくデコードされるようにするには、エンコードされたバイトのストリームにプリアンブルを付けることができます。To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. ファイルに書き込む一連のバイトの先頭に、プリアンブルをバイトストリームの先頭に挿入することは、開発者の責任であり、プリアンブル内のバイト数はGetByteCountメソッドによって返される値には反映されません。Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

こちらもご覧ください

GetByteCount(Char*, Int32) GetByteCount(Char*, Int32) GetByteCount(Char*, Int32)

重要

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

指定した文字ポインターで始まる文字のセットをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.

public:
 override int GetByteCount(char* chars, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public override int GetByteCount (char* chars, int count);
override this.GetByteCount : nativeptr<char> * int -> int

パラメーター

chars
Char*

エンコードする最初の文字へのポインター。A pointer to the first character to encode.

count
Int32 Int32 Int32 Int32

エンコードする文字数。The number of characters to encode.

戻り値

指定した文字をエンコードすることによって生成されるバイト数。The number of bytes produced by encoding the specified characters.

例外

count が 0 未満です。count is less than zero.

または-or- 結果のバイト数が、整数として返すことのできる最大数を超えています。The resulting number of bytes is greater than the maximum number that can be returned as an integer.

エラーの検出が有効になり、chars に無効な文字のシーケンスが含まれています。Error detection is enabled, and chars contains an invalid sequence of characters.

フォールバックが発生しました (詳細な説明は、「.NET Framework における文字エンコーディング」をご覧ください)A fallback occurred (see Character Encoding in the .NET Framework for a complete explanation) および-and- EncoderFallbackEncoderExceptionFallback に設定されます。EncoderFallback is set to EncoderExceptionFallback.

注釈

GetBytesメソッドが結果のバイトを格納するために必要な配列の正確なサイズを計算GetByteCountするには、メソッドを呼び出します。To calculate the exact array size required by the GetBytes method to store the resulting bytes, you call the GetByteCount method. 配列の最大サイズを計算するには、 GetMaxByteCountメソッドを呼び出します。To calculate the maximum array size, you call the GetMaxByteCount method. メソッドは通常、より少ないメモリを割り当てGetMaxByteCountますが、メソッドは通常、より高速に実行されます。 GetByteCountThe GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

エラー検出を使用すると、無効なシーケンスによってArgumentExceptionこのメソッドが例外をスローします。With error detection, an invalid sequence causes this method to throw an ArgumentException exception. エラー検出を行わないと、無効なシーケンスは無視され、例外はスローされません。Without error detection, invalid sequences are ignored, and no exception is thrown.

エンコードされたバイトがファイルまたはストリームとして保存されるときに正しくデコードされるようにするには、エンコードされたバイトのストリームにプリアンブルを付けることができます。To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. ファイルに書き込む一連のバイトの先頭に、プリアンブルをバイトストリームの先頭に挿入することは、開発者の責任であり、プリアンブル内のバイト数はGetByteCountメソッドによって返される値には反映されません。Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に完全信頼が必要です。Requires full trust for the immediate caller. このメンバーは、部分的に信頼されているコードまたは透過的なコードでは使用できません。This member cannot be used by partially trusted or transparent code.

こちらもご覧ください

GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32)

指定した文字配列から文字のセットをエンコードすることによって生成されるバイト数を計算します。Calculates the number of bytes produced by encoding a set of characters from the specified character array.

public:
 override int GetByteCount(cli::array <char> ^ chars, int index, int count);
public override int GetByteCount (char[] chars, int index, int count);
override this.GetByteCount : char[] * int * int -> int
Public Overrides Function GetByteCount (chars As Char(), index As Integer, count As Integer) As Integer

パラメーター

chars
Char[]

エンコード対象の文字のセットを格納している文字配列。The character array containing the set of characters to encode.

index
Int32 Int32 Int32 Int32

エンコードする最初の文字のインデックス。The index of the first character to encode.

count
Int32 Int32 Int32 Int32

エンコードする文字数。The number of characters to encode.

戻り値

指定した文字をエンコードすることによって生成されるバイト数。The number of bytes produced by encoding the specified characters.

例外

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

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

- または --or- 結果のバイト数が、整数として返すことのできる最大数を超えています。The resulting number of bytes is greater than the maximum number that can be returned as an integer.

エラーの検出が有効になり、chars に無効な文字のシーケンスが含まれています。Error detection is enabled, and chars contains an invalid sequence of characters.

フォールバックが発生しました (詳細な説明は、「.NET Framework における文字エンコーディング」をご覧ください)A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) および-and- EncoderFallback プロパティが EncoderExceptionFallback に設定されている。The EncoderFallback property is set to EncoderExceptionFallback.

次の例では、アルファベットの大文字と小文字を含む配列GetByteCount(Char[], Int32, Int32)を設定し、メソッドを呼び出して、ラテン文字の小文字をエンコードするために必要なバイト数を決定します。The following example populates an array with a Latin uppercase and lowercase characters and calls the GetByteCount(Char[], Int32, Int32) method to determine the number of bytes needed to encode the Latin lowercase characters. 次に、バイトオーダーマークが追加された場合に、必要な合計バイト数と共にこの情報が表示されます。It then displays this information along with the total number of bytes needed if a byte order mark is added. この数値と、 GetMaxByteCountメソッドによって返される値を比較します。これは、ラテンの小文字をエンコードするために必要な最大バイト数を示します。It compares this number with the value returned by the GetMaxByteCount method, which indicates maximum number of bytes needed to encode the Latin lowercase characters.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      int uppercaseStart = 0x0041;
      int uppercaseEnd = 0x005a;
      int lowercaseStart = 0x0061;
      int lowercaseEnd = 0x007a;
      // Instantiate a UTF8 encoding object with BOM support.
      Encoding utf8 = new UTF8Encoding(true);

      // Populate array with characters.
      char[] chars = new char[lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 2];
      int index = 0;
      for (int ctr = uppercaseStart; ctr <= uppercaseEnd; ctr++) {
         chars[index] = (char)ctr;
         index++;
      }
      for (int ctr = lowercaseStart; ctr <= lowercaseEnd; ctr++) {
         chars[index] = (char)ctr;
         index++;
      }

      // Display the bytes needed for the lowercase characters.
      Console.WriteLine("Bytes needed for lowercase Latin characters:");
      Console.WriteLine("   Maximum:         {0,5:N0}",
                        utf8.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1));
      Console.WriteLine("   Actual:          {0,5:N0}",
                        utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                          lowercaseEnd - lowercaseStart + 1));
      Console.WriteLine("   Actual with BOM: {0,5:N0}",
                        utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                          lowercaseEnd - lowercaseStart + 1) +
                                          utf8.GetPreamble().Length);
   }
}
// The example displays the following output:
//       Bytes needed for lowercase Latin characters:
//          Maximum:            81
//          Actual:             26
//          Actual with BOM:    29
Imports System.Text

Module Example
   Public Sub Main()
      Dim uppercaseStart As Integer = &h0041
      Dim uppercaseEnd As Integer = &h005a
      Dim lowercaseStart As Integer = &h0061
      Dim lowercaseEnd As Integer = &h007a
      ' Instantiate a UTF8 encoding object with BOM support.
      Dim utf8 As New UTF8Encoding(True)
      
      ' Populate array with characters.
      Dim chars(lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 1) As Char
      Dim index As Integer = 0
      For ctr As Integer = uppercaseStart To uppercaseEnd
         chars(index) = ChrW(ctr)
         index += 1
      Next
      For ctr As Integer = lowercaseStart To lowercaseEnd
         chars(index) = ChrW(ctr)
         index += 1
      Next

      ' Display the bytes needed for the lowercase characters.
        Console.WriteLine("Bytes needed for lowercase Latin characters:")
        Console.WriteLine("   Maximum:         {0,5:N0}",
                          utf8.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1))
        Console.WriteLine("   Actual:          {0,5:N0}",
                          utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                            lowercaseEnd - lowercaseStart + 1))
        Console.WriteLine("   Actual with BOM: {0,5:N0}",
                          utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                            lowercaseEnd - lowercaseStart + 1) +
                                            utf8.GetPreamble().Length)
   End Sub
End Module
' The example displays the following output:
'       Bytes needed for lowercase Latin characters:
'          Maximum:            81
'          Actual:             26
'          Actual with BOM:    29

注釈

が結果のバイトを格納GetBytesするために必要な配列の正確なサイズを計算するには、uses GetByteCountメソッドを呼び出します。To calculate the exact array size required by GetBytes to store the resulting bytes, you call the uses GetByteCount method. 配列の最大サイズを計算するには、 GetMaxByteCountメソッドを呼び出します。To calculate the maximum array size, you call the GetMaxByteCount method. メソッドは通常、より少ないメモリを割り当てGetMaxByteCountますが、メソッドは通常、より高速に実行されます。 GetByteCountThe GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

エラー検出を使用すると、無効なシーケンスによってArgumentExceptionこのメソッドが例外をスローします。With error detection, an invalid sequence causes this method to throw an ArgumentException exception. エラー検出を行わないと、無効なシーケンスは無視され、例外はスローされません。Without error detection, invalid sequences are ignored, and no exception is thrown.

エンコードされたバイトがファイルまたはストリームとして保存されるときに正しくデコードされるようにするには、エンコードされたバイトのストリームにプリアンブルを付けることができます。To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. ファイルに書き込む一連のバイトの先頭に、プリアンブルをバイトストリームの先頭に挿入することは、開発者の責任であり、プリアンブル内のバイト数はGetByteCountメソッドによって返される値には反映されません。Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

こちらもご覧ください

適用対象