UTF8Encoding.GetCharCount Метод

Определение

Вычисляет количество символов, полученных при декодировании последовательности байтов.

Перегрузки

GetCharCount(Byte[], Int32, Int32)

Вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов.

GetCharCount(Byte*, Int32)

Вычисляет количество символов, полученных при декодировании последовательности байтов начиная с заданного указателя байта.

GetCharCount(ReadOnlySpan<Byte>)

Вычисляет количество символов, полученных при декодировании заданного диапазона байтов.

GetCharCount(Byte[], Int32, Int32)

Исходный код:
UTF8Encoding.cs
Исходный код:
UTF8Encoding.cs
Исходный код:
UTF8Encoding.cs

Вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов.

public override int GetCharCount (byte[] bytes, int index, int count);

Параметры

bytes
Byte[]

Массив байтов, содержащий последовательность байтов, которую требуется декодировать.

index
Int32

Индекс первого декодируемого байта.

count
Int32

Число байтов для декодирования.

Возвращаемое значение

Число символов, полученных при декодировании заданной последовательности байтов.

Исключения

bytes имеет значение null.

Значение параметра index или count меньше нуля.

-или-

Параметрыindex и count не указывают допустимый диапазон в bytes.

-или-

Результирующее число байтов больше максимального количества, которое можно вернуть как целочисленное значение.

Обнаружение ошибок включено, и параметр bytes содержит недопустимую последовательность байтов.

Произошел откат (см. сведения о кодировке символов в .NET)

- и -

Параметру DecoderFallback задается значение DecoderExceptionFallback.

Примеры

В следующем примере метод используется GetCharCount для возврата количества символов, полученных при декодировании диапазона элементов в массиве байтов.

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
        );
    }
}

Комментарии

Чтобы вычислить точный размер массива, необходимый GetChars для хранения полученных символов, вызовите GetCharCount метод . Чтобы вычислить максимальный размер массива, вызовите GetMaxCharCount метод. Метод GetCharCount обычно выделяет меньше памяти, в то время как GetMaxCharCount метод обычно выполняется быстрее.

При обнаружении ошибок недопустимая последовательность приводит к тому, что этот метод вызывает ArgumentException исключение. Без обнаружения ошибок недопустимые последовательности игнорируются, и исключение не создается.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GetCharCount(Byte*, Int32)

Исходный код:
UTF8Encoding.cs
Исходный код:
UTF8Encoding.cs
Исходный код:
UTF8Encoding.cs

Важно!

Этот API несовместим с CLS.

Вычисляет количество символов, полученных при декодировании последовательности байтов начиная с заданного указателя байта.

[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);

Параметры

bytes
Byte*

Указатель на первый декодируемый байт.

count
Int32

Число байтов для декодирования.

Возвращаемое значение

Число символов, полученных при декодировании заданной последовательности байтов.

Атрибуты

Исключения

bytes имеет значение null.

Значение параметра count меньше нуля.

-или-

Результирующее число байтов больше максимального количества, которое можно вернуть как целочисленное значение.

Обнаружение ошибок включено, и параметр bytes содержит недопустимую последовательность байтов.

Произошел откат (см. сведения о кодировке символов в .NET)

- и -

Параметру DecoderFallback задается значение DecoderExceptionFallback.

Комментарии

Чтобы вычислить точный размер массива, необходимый GetChars для хранения полученных символов, вызовите GetCharCount метод . Чтобы вычислить максимальный размер массива, вызовите GetMaxCharCount метод. Метод GetCharCount обычно выделяет меньше памяти, в то время как GetMaxCharCount метод обычно выполняется быстрее.

При обнаружении ошибок недопустимая последовательность приводит к тому, что этот метод вызывает ArgumentException исключение. Без обнаружения ошибок недопустимые последовательности игнорируются, и исключение не создается.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GetCharCount(ReadOnlySpan<Byte>)

Исходный код:
UTF8Encoding.cs
Исходный код:
UTF8Encoding.cs
Исходный код:
UTF8Encoding.cs

Вычисляет количество символов, полученных при декодировании заданного диапазона байтов.

public override int GetCharCount (ReadOnlySpan<byte> bytes);

Параметры

bytes
ReadOnlySpan<Byte>

Диапазон, содержащий набор байтов для декодирования.

Возвращаемое значение

Количество символов, полученных при декодировании заданного диапазона байтов.

Комментарии

Чтобы вычислить точный размер, необходимый GetChars для хранения полученных символов, вызовите GetCharCount метод . Чтобы вычислить максимальный размер, вызовите GetMaxCharCount метод . Метод GetCharCount обычно выделяет меньше памяти, в то время как GetMaxCharCount метод обычно выполняется быстрее.

При обнаружении ошибок недопустимая последовательность приводит к тому, что этот метод вызывает ArgumentException исключение. Без обнаружения ошибок недопустимые последовательности игнорируются, и исключение не создается.

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9