UTF8Encoding.GetCharCount メソッド

定義

バイト シーケンスをデコードすることによって生成される文字数を計算します。Calculates the number of characters produced by decoding a sequence of bytes.

オーバーロード

GetCharCount(Byte[], Int32, Int32)

指定したバイト配列からバイト シーケンスをデコードすることによって生成される文字数を計算します。Calculates the number of characters produced by decoding a sequence of bytes from the specified byte array.

GetCharCount(ReadOnlySpan<Byte>)

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

GetCharCount(Byte*, Int32)

指定したバイト ポインターで始まるバイト シーケンスをデコードすることによって生成される文字数を計算します。Calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer.

GetCharCount(Byte[], Int32, Int32)

指定したバイト配列からバイト シーケンスをデコードすることによって生成される文字数を計算します。Calculates the number of characters produced by decoding a sequence of bytes from the specified byte array.

public:
 override int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count);
public override int GetCharCount (byte[] bytes, int index, int count);
override this.GetCharCount : byte[] * int * int -> int
Public Overrides Function GetCharCount (bytes As Byte(), index As Integer, count As Integer) As Integer

パラメーター

bytes
Byte[]

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

index
Int32

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

count
Int32

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

戻り値

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

例外

bytesnullです。bytes is null.

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

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

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

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

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

次の例ではGetCharCount 、メソッドを使用して、バイト配列内の要素の範囲をデコードすることによって生成される文字数を返します。The following example uses the GetCharCount method to return the number of characters produced by decoding a range of elements in a byte array.

using namespace System;
using namespace System::Text;
int main()
{
   array<Byte>^bytes = {85,84,70,56,32,69,110,99,111,100,105,110,103,32,69,120,97,109,112,108,101};
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int charCount = utf8->GetCharCount( bytes, 2, 8 );
   Console::WriteLine( "{0} characters needed to decode bytes.", charCount );
}

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        Byte[] bytes = new Byte[] {
             85,  84,  70,  56,  32,  69, 110,
             99, 111, 100, 105, 110, 103,  32,
             69, 120,  97, 109, 112, 108, 101
        };

        UTF8Encoding utf8 = new UTF8Encoding();
        int charCount = utf8.GetCharCount(bytes, 2, 8);
        Console.WriteLine(
            "{0} characters needed to decode bytes.", charCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte = { _
            85,  84,  70,  56,  32,  69, 110, _
            99, 111, 100, 105, 110, 103,  32, _
            69, 120,  97, 109, 112, 108, 101 _
        }
        
        Dim utf8 As New UTF8Encoding()
        Dim charCount As Integer = utf8.GetCharCount(bytes, 2, 8)
        Console.WriteLine("{0} characters needed to decode bytes.", charCount)
    End Sub
End Class

注釈

が結果の文字を格納GetCharsするために必要な配列の正確なサイズを計算するには、 GetCharCountメソッドを呼び出します。To calculate the exact array size required by GetChars to store the resulting characters, call the GetCharCount method. 配列の最大サイズを計算するにはGetMaxCharCount 、メソッドを呼び出します。To calculate the maximum array size, call the GetMaxCharCount method. メソッドは通常、より少ないメモリを割り当てGetMaxCharCountますが、メソッドは通常、より高速に実行されます。 GetCharCountThe GetCharCount method generally allocates less memory, while the GetMaxCharCount 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.

こちらもご覧ください

GetCharCount(ReadOnlySpan<Byte>)

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

public:
 override int GetCharCount(ReadOnlySpan<System::Byte> bytes);
public override int GetCharCount (ReadOnlySpan<byte> bytes);
override this.GetCharCount : ReadOnlySpan<byte> -> int
Public Overrides Function GetCharCount (bytes As ReadOnlySpan(Of Byte)) As Integer

パラメーター

bytes
ReadOnlySpan<Byte>

デコードするバイトのセットを格納しているスパン。The span containing the set of bytes to decode.

戻り値

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

注釈

結果の文字を格納するためGetCharsにで必要とされる正確なGetCharCountサイズを計算するには、メソッドを呼び出します。To calculate the exact size required by GetChars to store the resulting characters, call the GetCharCount method. 最大サイズを計算するには、 GetMaxCharCountメソッドを呼び出します。To calculate the maximum size, call the GetMaxCharCount method. メソッドは通常、より少ないメモリを割り当てGetMaxCharCountますが、メソッドは通常、より高速に実行されます。 GetCharCountThe GetCharCount method generally allocates less memory, while the GetMaxCharCount 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.

GetCharCount(Byte*, Int32)

重要

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

指定したバイト ポインターで始まるバイト シーケンスをデコードすることによって生成される文字数を計算します。Calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer.

public:
 override int GetCharCount(System::Byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public override int GetCharCount (byte* bytes, int count);
override this.GetCharCount : nativeptr<byte> * int -> int

パラメーター

bytes
Byte*

デコードする最初のバイトへのポインター。A pointer to the first byte to decode.

count
Int32

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

戻り値

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

属性

例外

bytesnullです。bytes is null.

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.

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

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

注釈

が結果の文字を格納GetCharsするために必要な配列の正確なサイズを計算するには、 GetCharCountメソッドを呼び出します。To calculate the exact array size required by GetChars to store the resulting characters, call the GetCharCount method. 配列の最大サイズを計算するにはGetMaxCharCount 、メソッドを呼び出します。To calculate the maximum array size, call the GetMaxCharCount method. メソッドは通常、より少ないメモリを割り当てGetMaxCharCountますが、メソッドは通常、より高速に実行されます。 GetCharCountThe GetCharCount method generally allocates less memory, while the GetMaxCharCount 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.

セキュリティ

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

こちらもご覧ください

適用対象