UTF8Encoding UTF8Encoding UTF8Encoding UTF8Encoding Constructors

定義

オーバーロード

UTF8Encoding() UTF8Encoding() UTF8Encoding()

UTF8Encoding クラスの新しいインスタンスを初期化します。Initializes a new instance of the UTF8Encoding class.

UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean)

UTF8Encoding クラスの新しいインスタンスを初期化します。Initializes a new instance of the UTF8Encoding class. Unicode バイト順マークを付加するかどうかを指定するパラメーター。A parameter specifies whether to provide a Unicode byte order mark.

UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean)

UTF8Encoding クラスの新しいインスタンスを初期化します。Initializes a new instance of the UTF8Encoding class. パラメーターでは、Unicode バイト順マークを付加するかどうか、および無効なエンコードが検出されたときに例外をスローするかどうかを指定します。Parameters specify whether to provide a Unicode byte order mark and whether to throw an exception when an invalid encoding is detected.

UTF8Encoding() UTF8Encoding() UTF8Encoding()

UTF8Encoding クラスの新しいインスタンスを初期化します。Initializes a new instance of the UTF8Encoding class.

public:
 UTF8Encoding();
public UTF8Encoding ();
Public Sub New ()

次の例では、 UTF8Encoding新しいインスタンスを作成し、その名前を表示します。The following example creates a new UTF8Encoding instance and displays its name.

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   String^ encodingName = utf8->EncodingName;
   Console::WriteLine( "Encoding name: {0}", encodingName );
}

using System;
using System.Text;

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

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim encodingName As String = utf8.EncodingName
        Console.WriteLine("Encoding name: " & encodingName)
    End Sub
End Class

注釈

このコンストラクターは、Unicode バイト順マークを提供しないインスタンスを作成し、無効なエンコーディングが検出された場合に例外をスローしません。This constructor creates an instance that does not provide a Unicode byte order mark and does not throw an exception when an invalid encoding is detected.

注意事項

セキュリティ上の理由から、 throwOnInvalidBytesパラメーターを使用してコンストラクターを呼び出し、その値をにtrue設定することによって、エラー検出を有効にすることをお勧めします。For security reasons, we recommend that you enable error detection by calling a constructor with a throwOnInvalidBytes parameter and setting its value to true.

こちらもご覧ください

UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean)

UTF8Encoding クラスの新しいインスタンスを初期化します。Initializes a new instance of the UTF8Encoding class. Unicode バイト順マークを付加するかどうかを指定するパラメーター。A parameter specifies whether to provide a Unicode byte order mark.

public:
 UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)

パラメーター

encoderShouldEmitUTF8Identifier
Boolean Boolean Boolean Boolean

GetPreamble() メソッドが Unicode バイト順マークを返すよう指定する場合は true、それ以外の場合は falsetrue to specify that the GetPreamble() method returns a Unicode byte order mark; otherwise, false.

次の例では、 UTF8Encoding新しいインスタンスを作成し、 GetPreambleメソッドによって Unicode バイト順マークのプレフィックスを出力するように指定しています。The following example creates a new UTF8Encoding instance and specifies that a Unicode byte order mark prefix should be emitted by the GetPreamble method. GetPreambleに、メソッドは Unicode バイト順マークのプレフィックスを返します。The GetPreamble method then returns the Unicode byte order mark prefix.

using namespace System;
using namespace System::Text;
using namespace System::Collections;
void ShowArray( Array^ theArray )
{
   IEnumerator^ myEnum = theArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ o = safe_cast<Object^>(myEnum->Current);
      Console::Write( "[{0}]", o );
   }

   Console::WriteLine();
}

int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   UTF8Encoding^ utf8EmitBOM = gcnew UTF8Encoding( true );
   Console::WriteLine( "utf8 preamble:" );
   ShowArray( utf8->GetPreamble() );
   Console::WriteLine( "utf8EmitBOM:" );
   ShowArray( utf8EmitBOM->GetPreamble() );
}

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();
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim utf8EmitBOM As New UTF8Encoding(True)
        
        Console.WriteLine("utf8 preamble:")
        ShowArray(utf8.GetPreamble())
        
        Console.WriteLine("utf8EmitBOM:")
        ShowArray(utf8EmitBOM.GetPreamble())
    End Sub
    
    
    Public Shared Sub ShowArray(theArray As Array)
        Dim o As Object
        For Each o In  theArray
            Console.Write("[{0}]", o)
        Next o
        Console.WriteLine()
    End Sub
End Class

注釈

このコンストラクターは、無効なエンコーディングが検出された場合に例外をスローしないインスタンスを作成します。This constructor creates an instance that does not throw an exception when an invalid encoding is detected.

注意事項

セキュリティ上の理由から、パラメーターをthrowOnInvalidBytes含むコンストラクターを呼び出し、その値をにtrue設定することによって、エラーの検出を有効にする必要があります。For security reasons, you should enable error detection by calling a constructor that includes a throwOnInvalidBytes parameter and setting its value to true.

パラメーター encoderShouldEmitUTF8Identifierは、 GetPreambleメソッドの操作を制御します。The encoderShouldEmitUTF8Identifier parameter controls the operation of the GetPreamble method. true場合、メソッドは Unicode バイト順マーク (BOM) を utf-8 形式で格納しているバイト配列を返します。If true, the method returns a byte array containing the Unicode byte order mark (BOM) in UTF-8 format. false場合は、長さ0のバイト配列を返します。If false, it returns a zero-length byte array. ただし、をencoderShouldEmitUTF8Identifiertrue設定してもGetBytes 、メソッドは、 GetByteCountバイト配列の先頭にある bom にプレフィックスを付けることはできません。また、メソッドが bom のバイト数をバイト数に含めることもありません。However, setting encoderShouldEmitUTF8Identifier to true does not cause the GetBytes method to prefix the BOM at the beginning of the byte array, nor does it cause the GetByteCount method to include the number of bytes in the BOM in the byte count.

こちらもご覧ください

UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean)

UTF8Encoding クラスの新しいインスタンスを初期化します。Initializes a new instance of the UTF8Encoding class. パラメーターでは、Unicode バイト順マークを付加するかどうか、および無効なエンコードが検出されたときに例外をスローするかどうかを指定します。Parameters specify whether to provide a Unicode byte order mark and whether to throw an exception when an invalid encoding is detected.

public:
 UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
new System.Text.UTF8Encoding : bool * bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean, throwOnInvalidBytes As Boolean)

パラメーター

encoderShouldEmitUTF8Identifier
Boolean Boolean Boolean Boolean

GetPreamble() メソッドが Unicode バイト順マークを返すよう指定する場合は true、それ以外の場合は falsetrue to specify that the GetPreamble() method should return a Unicode byte order mark; otherwise, false.

throwOnInvalidBytes
Boolean Boolean Boolean Boolean

無効なエンコードが検出されたときに例外をスローする場合は true、それ以外の場合は falsetrue to throw an exception when an invalid encoding is detected; otherwise, false.

次の例では、 UTF8Encoding新しいインスタンスを作成しGetPreambleて、メソッドが Unicode バイト順マークプレフィックスを生成しないように指定し、無効なエンコーディングが検出された場合に例外をスローする必要があることを指定します。The following example creates a new UTF8Encoding instance, specifying that the GetPreamble method should not emit a Unicode byte order mark prefix, and an exception should be thrown when an invalid encoding is detected. このコンストラクターの動作は、既定UTF8Encoding()のコンストラクターと比較されます。これにより、無効なエンコーディングが検出された場合に例外がスローされることはありません。The behavior of this constructor is compared to the default UTF8Encoding() constructor, which does not throw an exception when an invalid encoding is detected. 2つUTF8Encodingのインスタンスは、2つの上位サロゲート (u + D801 および u + D802) を含む文字配列を、無効な文字シーケンスである行内にエンコードします。上位サロゲートの後には常に下位サロゲートを指定する必要があります。The two UTF8Encoding instances encode a character array that contains two high surrogates (U+D801 and U+D802) in a row, which is an invalid character sequence; a high surrogate should always be followed by a low surrogate.

using namespace System;
using namespace System::Text;

void ShowArray(Array^ theArray)
{
   for each (Byte b in theArray) {
      Console::Write( "{0:X2} ", b);
   }
   Console::WriteLine();
}

int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   UTF8Encoding^ utf8ThrowException = gcnew UTF8Encoding(false,true);
   
   // This array contains two high surrogates in a row (\uD801, \uD802).
   array<Char>^chars = {'a','b','c',L'\xD801',L'\xD802','d'};
   
   // The following method call will not throw an exception.
   array<Byte>^bytes = utf8->GetBytes( chars );
   ShowArray( bytes );
   Console::WriteLine();
   
   try {
      
      // The following method call will throw an exception.
      bytes = utf8ThrowException->GetBytes( chars );
   }
   catch (EncoderFallbackException^ e ) {
            Console::WriteLine("{0} exception\nMessage:\n{1}",
                               e->GetType()->Name, e->Message);
   }

}

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.
Imports System.Text

Class Example
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim utf8ThrowException As New UTF8Encoding(False, True)
        
        ' Create an array with two high surrogates in a row (\uD801, \uD802).
        Dim chars() As Char = {"a"c, "b"c, "c"c, ChrW(&hD801), ChrW(&hD802), "d"c}
        
        ' The following method call will not throw an exception.
        Dim bytes As Byte() = utf8.GetBytes(chars)
        ShowArray(bytes)
        Console.WriteLine()
        
        Try
            ' The following method call will throw an exception.
            bytes = utf8ThrowException.GetBytes(chars)
            ShowArray(bytes)
        Catch e As EncoderFallbackException
            Console.WriteLine("{0} exception{2}Message:{2}{1}",
                              e.GetType().Name, e.Message, vbCrLf)
        End Try
    End Sub
    
    
    Public Shared Sub ShowArray(theArray As Array)
        For Each o In theArray
            Console.Write("{0:X2} ", o)
        Next
        Console.WriteLine()
    End Sub
End Class
' 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メソッドの操作を制御します。The encoderShouldEmitUTF8Identifier parameter controls the operation of the GetPreamble method. true場合、メソッドは Unicode バイト順マーク (BOM) を utf-8 形式で格納しているバイト配列を返します。If true, the method returns a byte array containing the Unicode byte order mark (BOM) in UTF-8 format. false場合は、長さ0のバイト配列を返します。If false, it returns a zero-length byte array. ただし、をencoderShouldEmitUTF8Identifiertrue設定してもGetBytes 、メソッドは、 GetByteCountバイト配列の先頭にある bom にプレフィックスを付けることはできません。また、メソッドが bom のバイト数をバイト数に含めることもありません。However, setting encoderShouldEmitUTF8Identifier to true does not cause the GetBytes method to prefix the BOM at the beginning of the byte array, nor does it cause the GetByteCount method to include the number of bytes in the BOM in the byte count.

System.ArgumentExceptionthrowOnInvalidBytes の場合、無効なバイトシーケンスを検出するメソッドは例外をスローします。trueIf throwOnInvalidBytes is true, a method that detects an invalid byte sequence throws an System.ArgumentException exception. それ以外の場合、メソッドは例外をスローせず、無効なシーケンスは無視されます。Otherwise, the method does not throw an exception, and the invalid sequence is ignored.

注意事項

セキュリティ上の理由から、パラメーターをthrowOnInvalidBytes含むコンストラクターを呼び出し、そのパラメーターをにtrue設定することによって、エラーの検出を有効にする必要があります。For security reasons, you should enable error detection by calling a constructor that includes a throwOnInvalidBytes parameter and setting that parameter to true.

こちらもご覧ください

適用対象