英語で読む

次の方法で共有


UTF8Encoding.GetEncoder メソッド

定義

Unicode 文字のシーケンスを UTF-8 でエンコードされたバイト シーケンスに変換するエンコーダーを取得します。

C#
public override System.Text.Encoder GetEncoder();

戻り値

Unicode 文字のシーケンスを UTF-8 でエンコードされたバイト シーケンスに変換する Encoder

次の例では、 メソッドを GetEncoder 使用してエンコーダーを取得し、一連の文字を UTF-8 でエンコードされたバイト シーケンスに変換します。

C#
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        Char[] chars = new Char[] {'a', 'b', 'c', '\u0300', '\ua0a0'};
        Byte[] bytes;

        Encoder utf8Encoder = Encoding.UTF8.GetEncoder();

        int byteCount = utf8Encoder.GetByteCount(chars, 2, 3, true);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf8Encoder.GetBytes(chars, 2, 3, bytes, 0, true);

        Console.WriteLine(
            "{0} bytes used to encode characters.", bytesEncodedCount
        );

        Console.Write("Encoded bytes: ");
        foreach (Byte b in bytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
    }
}

注釈

メソッドは Encoder.GetBytes 、 メソッドと同様の方法で、文字のシーケンシャル ブロックをバイトのシーケンシャル ブロックに GetBytes 変換します。 ただし、 は Encoder 、ブロックにまたがる文字シーケンスを正しくエンコードできるように、呼び出し間の状態情報を保持します。 また、は Encoder データブロックの末尾で末尾の文字を保持し、次のエンコーディング操作で末尾の文字を使用します。 たとえば、データブロックの末尾が一致していない上位サロゲートで、一致する下位サロゲートが次のデータブロックに含まれている可能性があります。 そのため、 GetDecoderGetEncoder は、ネットワークの転送およびファイル操作に役立ちます。これらの操作は、多くの場合、完全なデータストリームではなく、データのブロックを処理するためです。

エラー検出が有効になっている場合、つまり、 throwOnInvalidCharacters コンストラクターのパラメーターが に true設定されている場合、このメソッドによって返される でも Encoder エラー検出が有効になります。 エラー検出が有効で、無効なシーケンスが検出された場合、エンコーダーの状態は未定義であり、処理を停止する必要があります。

適用対象

製品 バージョン
.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, 10
.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

こちらもご覧ください