UTF8Encoding.GetCharCount Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Calculates the number of characters produced by decoding a sequence of bytes.
Overloads
GetCharCount(Byte[], Int32, Int32) |
Calculates the number of characters produced by decoding a sequence of bytes from the specified byte array. |
GetCharCount(Byte*, Int32) |
Calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer. |
GetCharCount(ReadOnlySpan<Byte>) |
Calculates the number of characters produced by decoding the specified byte span. |
GetCharCount(Byte[], Int32, Int32)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
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
Parameters
- 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.
Returns
The number of characters produced by decoding the specified sequence of bytes.
Exceptions
bytes
is null
.
index
or count
is less than zero.
-or-
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.
Error detection is enabled, and bytes
contains an invalid sequence of bytes.
A fallback occurred (for more information, see Character Encoding in .NET)
-and-
DecoderFallback is set to DecoderExceptionFallback.
Examples
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
Remarks
To calculate the exact array size required by GetChars to store the resulting characters, call the GetCharCount method. To calculate the maximum array size, call the GetMaxCharCount method. The GetCharCount method generally allocates less memory, while the GetMaxCharCount method generally executes faster.
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.
See also
Applies to
GetCharCount(Byte*, Int32)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
Important
This API is not CLS-compliant.
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.Security.SecurityCritical]
public override int GetCharCount (byte* bytes, int count);
[System.CLSCompliant(false)]
public override int GetCharCount (byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetCharCount (byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetCharCount (byte* bytes, int count);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetCharCount : nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
override this.GetCharCount : nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetCharCount : nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetCharCount : nativeptr<byte> * int -> int
Parameters
- bytes
- Byte*
A pointer to the first byte to decode.
- count
- Int32
The number of bytes to decode.
Returns
The number of characters produced by decoding the specified sequence of bytes.
- Attributes
Exceptions
bytes
is null
.
count
is less than zero.
-or-
The resulting number of bytes is greater than the maximum number that can be returned as an integer.
Error detection is enabled, and bytes
contains an invalid sequence of bytes.
A fallback occurred (for more information, see Character Encoding in .NET)
-and-
DecoderFallback is set to DecoderExceptionFallback.
Remarks
To calculate the exact array size required by GetChars to store the resulting characters, call the GetCharCount method. To calculate the maximum array size, call the GetMaxCharCount method. The GetCharCount method generally allocates less memory, while the GetMaxCharCount method generally executes faster.
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.
See also
Applies to
GetCharCount(ReadOnlySpan<Byte>)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
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
Parameters
- bytes
- ReadOnlySpan<Byte>
The span containing the set of bytes to decode.
Returns
The number of characters produced by decoding the specified byte span.
Remarks
To calculate the exact size required by GetChars to store the resulting characters, call the GetCharCount method. To calculate the maximum size, call the GetMaxCharCount method. The GetCharCount method generally allocates less memory, while the GetMaxCharCount method generally executes faster.
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.