英語で読む

次の方法で共有


UTF8Encoding コンストラクター

定義

UTF8Encoding クラスの新しいインスタンスを初期化します。

オーバーロード

UTF8Encoding()

UTF8Encoding クラスの新しいインスタンスを初期化します。

UTF8Encoding(Boolean)

UTF8Encoding クラスの新しいインスタンスを初期化します。 Unicode バイト順マークを付加するかどうかを指定するパラメーター。

UTF8Encoding(Boolean, Boolean)

UTF8Encoding クラスの新しいインスタンスを初期化します。 パラメーターでは、Unicode バイト順マークを付加するかどうか、および無効なエンコードが検出されたときに例外をスローするかどうかを指定します。

UTF8Encoding()

ソース:
UTF8Encoding.cs
ソース:
UTF8Encoding.cs
ソース:
UTF8Encoding.cs

UTF8Encoding クラスの新しいインスタンスを初期化します。

public UTF8Encoding ();

次の例では、新 UTF8Encoding しいインスタンスを作成し、その名前を表示します。

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        String encodingName = utf8.EncodingName;
        Console.WriteLine("Encoding name: " + encodingName);
    }
}

注釈

このコンストラクターは、Unicode バイトオーダー マークを提供せず、無効なエンコードが検出されたときに例外をスローしないインスタンスを作成します。

注意事項

セキュリティ上の理由から、パラメーターを使用してコンストラクター throwOnInvalidBytes を呼び出し、その値を に true設定することで、エラー検出を有効にすることをお勧めします。

こちらもご覧ください

適用対象

.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

UTF8Encoding(Boolean)

ソース:
UTF8Encoding.cs
ソース:
UTF8Encoding.cs
ソース:
UTF8Encoding.cs

UTF8Encoding クラスの新しいインスタンスを初期化します。 Unicode バイト順マークを付加するかどうかを指定するパラメーター。

public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);

パラメーター

encoderShouldEmitUTF8Identifier
Boolean

GetPreamble() メソッドが Unicode バイト順マークを返すよう指定する場合は true、それ以外の場合は false

次の例では、新 UTF8Encoding しいインスタンスを作成し、 メソッドによって GetPreamble Unicode バイトオーダー マーク プレフィックスを出力する必要があることを指定します。 次に、 メソッドは GetPreamble Unicode バイト順マーク プレフィックスを返します。

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        UTF8Encoding utf8EmitBOM = new UTF8Encoding(true);

        Console.WriteLine("utf8 preamble:");
        ShowArray(utf8.GetPreamble());

        Console.WriteLine("utf8EmitBOM:");
        ShowArray(utf8EmitBOM.GetPreamble());
    }

    public static void ShowArray(Array theArray) {
        foreach (Object o in theArray) {
            Console.Write("[{0}]", o);
        }
        Console.WriteLine();
    }
}

注釈

このコンストラクターは、無効なエンコードが検出されたときに例外をスローしないインスタンスを作成します。

注意事項

セキュリティ上の理由から、パラメーターを含む throwOnInvalidBytes コンストラクターを呼び出し、その値を に設定することで、エラー検出を true有効にする必要があります。

パラメーターは encoderShouldEmitUTF8Identifier 、 メソッドの操作を GetPreamble 制御します。 の場合 true、メソッドは UNICODE バイトオーダー マーク (BOM) を UTF-8 形式で含むバイト配列を返します。 の場合 falseは、長さ 0 のバイト配列を返します。 ただし、 を にtrue設定encoderShouldEmitUTF8IdentifierしてもGetBytes、メソッドはバイト配列の先頭に BOM のプレフィックスを付けることはなく、GetByteCountまた、メソッドが BOM のバイト数をバイト数に含めることはありません。

こちらもご覧ください

適用対象

.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

UTF8Encoding(Boolean, Boolean)

ソース:
UTF8Encoding.cs
ソース:
UTF8Encoding.cs
ソース:
UTF8Encoding.cs

UTF8Encoding クラスの新しいインスタンスを初期化します。 パラメーターでは、Unicode バイト順マークを付加するかどうか、および無効なエンコードが検出されたときに例外をスローするかどうかを指定します。

public UTF8Encoding (bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);

パラメーター

encoderShouldEmitUTF8Identifier
Boolean

GetPreamble() メソッドが Unicode バイト順マークを返すよう指定する場合は true、それ以外の場合は false

throwOnInvalidBytes
Boolean

無効なエンコードが検出されたときに例外をスローする場合は true、それ以外の場合は false

次の例では、新しい UTF8Encoding インスタンスを作成し、無効なエンコードが GetPreamble 検出されたときにメソッドが Unicode バイトオーダー マーク プレフィックスを出力しないように指定し、例外をスローする必要があります。 このコンストラクターの動作は、無効なエンコードが検出されたときに例外をスローしない既定 UTF8Encoding() のコンストラクターと比較されます。 2 つの UTF8Encoding インスタンスは、無効な文字シーケンスである 2 つの上位サロゲート (U+D801 と U+D802) を含む文字配列をエンコードします。高いサロゲートの後には常に低いサロゲートが続く必要があります。

using System;
using System.Text;

class Example
{
    public static void Main()
    {
        UTF8Encoding utf8 = new UTF8Encoding();
        UTF8Encoding utf8ThrowException = new UTF8Encoding(false, true);

        // Create an array with two high surrogates in a row (\uD801, \uD802).
        Char[] chars = new Char[] {'a', 'b', 'c', '\uD801', '\uD802', 'd'};

        // The following method call will not throw an exception.
        Byte[] bytes = utf8.GetBytes(chars);
        ShowArray(bytes);
        Console.WriteLine();

        try {
            // The following method call will throw an exception.
            bytes = utf8ThrowException.GetBytes(chars);
            ShowArray(bytes);
        }
        catch (EncoderFallbackException e) {
            Console.WriteLine("{0} exception\nMessage:\n{1}",
                              e.GetType().Name, e.Message);
        }
    }

    public static void ShowArray(Array theArray) {
        foreach (Object o in theArray)
            Console.Write("{0:X2} ", o);

        Console.WriteLine();
    }
}
// The example displays the following output:
//    61 62 63 EF BF BD EF BF BD 64
//
//    EncoderFallbackException exception
//    Message:
//    Unable to translate Unicode character \uD801 at index 3 to specified code page.

注釈

パラメーターは encoderShouldEmitUTF8Identifier 、 メソッドの操作を GetPreamble 制御します。 の場合 true、メソッドは UNICODE バイトオーダー マーク (BOM) を UTF-8 形式で含むバイト配列を返します。 の場合 falseは、長さ 0 のバイト配列を返します。 ただし、 を にtrue設定encoderShouldEmitUTF8IdentifierしてもGetBytes、メソッドはバイト配列の先頭に BOM のプレフィックスを付けることはなく、GetByteCountまた、メソッドが BOM のバイト数をバイト数に含めることはありません。

が の場合throwOnInvalidBytes、無効なバイト シーケンスを検出するメソッドは例外をSystem.ArgumentExceptionスローtrueします。 それ以外の場合、メソッドは例外をスローせず、無効なシーケンスは無視されます。

注意事項

セキュリティ上の理由から、パラメーターを含むコンストラクターを呼び出し、そのパラメーターを throwOnInvalidBytes に設定することで、エラー検出を true有効にする必要があります。

こちらもご覧ください

適用対象

.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