UnicodeEncoding コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
UnicodeEncoding クラスの新しいインスタンスを初期化します。
オーバーロード
UnicodeEncoding() |
UnicodeEncoding クラスの新しいインスタンスを初期化します。 |
UnicodeEncoding(Boolean, Boolean) |
UnicodeEncoding クラスの新しいインスタンスを初期化します。 パラメーターでは、ビッグ エンディアン バイト順を使用するかどうか、および GetPreamble() メソッドが Unicode バイト順マークを返すかどうかを指定します。 |
UnicodeEncoding(Boolean, Boolean, Boolean) |
UnicodeEncoding クラスの新しいインスタンスを初期化します。 パラメーターでは、ビッグ エンディアン バイト順を使用するかどうか、Unicode バイト順マークを付加するかどうか、および無効なエンコーディングを検出したときに例外をスローするかどうかを指定します。 |
UnicodeEncoding()
UnicodeEncoding クラスの新しいインスタンスを初期化します。
public:
UnicodeEncoding();
public UnicodeEncoding ();
Public Sub New ()
例
次の例では、新しい UnicodeEncoding インスタンスを作成し、エンコードの名前を表示する方法を示します。
using namespace System;
using namespace System::Text;
int main()
{
UnicodeEncoding^ unicode = gcnew UnicodeEncoding;
String^ encodingName = unicode->EncodingName;
Console::WriteLine( "Encoding name: {0}", encodingName );
}
using System;
using System.Text;
class UnicodeEncodingExample {
public static void Main() {
UnicodeEncoding unicode = new UnicodeEncoding();
String encodingName = unicode.EncodingName;
Console.WriteLine("Encoding name: " + encodingName);
}
}
Imports System.Text
Class UnicodeEncodingExample
Public Shared Sub Main()
Dim uni As New UnicodeEncoding()
Dim encodingName As String = uni.EncodingName
Console.WriteLine("Encoding name: " & encodingName)
End Sub
End Class
注釈
このコンストラクターは、リトル エンディアンバイトオーダーを使用し、Unicode バイトオーダーマークを提供し、無効なエンコードが検出されたときに例外をスローしないインスタンスを作成します。
注意事項
セキュリティ上の理由から、コンストラクターを呼び出し、その引数を UnicodeEncoding(Boolean, Boolean, Boolean) に設定することで、エラー検出をthrowOnInvalidBytes
true
有効にする必要があります。
適用対象
UnicodeEncoding(Boolean, Boolean)
UnicodeEncoding クラスの新しいインスタンスを初期化します。 パラメーターでは、ビッグ エンディアン バイト順を使用するかどうか、および GetPreamble() メソッドが Unicode バイト順マークを返すかどうかを指定します。
public:
UnicodeEncoding(bool bigEndian, bool byteOrderMark);
public UnicodeEncoding (bool bigEndian, bool byteOrderMark);
new System.Text.UnicodeEncoding : bool * bool -> System.Text.UnicodeEncoding
Public Sub New (bigEndian As Boolean, byteOrderMark As Boolean)
パラメーター
- bigEndian
- Boolean
最上位バイトが先頭に配置されるビッグ エンディアン バイト順を使用する場合は true
。最下位バイトが先頭に配置されるリトル エンディアン バイト順を使用する場合は false
。
- byteOrderMark
- Boolean
GetPreamble() メソッドが Unicode バイト順マークを返すよう指定する場合は true
、それ以外の場合は false
。
例
次の例では、リトル エンディアンとビッグ エンディアンのどちらのバイト順序と Unicode バイトオーダー マークをサポートするかを指定する新しい UnicodeEncoding インスタンスを作成する方法を示します。
using namespace System;
using namespace System::Text;
void DescribeEquivalence( Boolean isEquivalent )
{
Console::WriteLine( " {0} equivalent encoding.", (isEquivalent ? (String^)"An" : "Not an") );
}
int main()
{
// Create a UnicodeEncoding without parameters.
UnicodeEncoding^ unicode = gcnew UnicodeEncoding;
// Create a UnicodeEncoding to support little-endian Byte ordering
// and include the Unicode Byte order mark.
UnicodeEncoding^ unicodeLittleEndianBOM = gcnew UnicodeEncoding( false,true );
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence( unicode->Equals( unicodeLittleEndianBOM ) );
// Create a UnicodeEncoding to support little-endian Byte ordering
// and not include the Unicode Byte order mark.
UnicodeEncoding^ unicodeLittleEndianNoBOM = gcnew UnicodeEncoding( false,false );
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence( unicode->Equals( unicodeLittleEndianNoBOM ) );
// Create a UnicodeEncoding to support big-endian Byte ordering
// and include the Unicode Byte order mark.
UnicodeEncoding^ unicodeBigEndianBOM = gcnew UnicodeEncoding( true,true );
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence( unicode->Equals( unicodeBigEndianBOM ) );
// Create a UnicodeEncoding to support big-endian Byte ordering
// and not include the Unicode Byte order mark.
UnicodeEncoding^ unicodeBigEndianNoBOM = gcnew UnicodeEncoding( true,false );
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence( unicode->Equals( unicodeBigEndianNoBOM ) );
}
using System;
using System.Text;
class UnicodeEncodingExample {
public static void Main() {
// Create a UnicodeEncoding without parameters.
UnicodeEncoding unicode = new UnicodeEncoding();
// Create a UnicodeEncoding to support little-endian byte ordering
// and include the Unicode byte order mark.
UnicodeEncoding unicodeLittleEndianBOM =
new UnicodeEncoding(false, true);
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicode.Equals(unicodeLittleEndianBOM));
// Create a UnicodeEncoding to support little-endian byte ordering
// and not include the Unicode byte order mark.
UnicodeEncoding unicodeLittleEndianNoBOM =
new UnicodeEncoding(false, false);
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicode.Equals(unicodeLittleEndianNoBOM));
// Create a UnicodeEncoding to support big-endian byte ordering
// and include the Unicode byte order mark.
UnicodeEncoding unicodeBigEndianBOM =
new UnicodeEncoding(true, true);
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicode.Equals(unicodeBigEndianBOM));
// Create a UnicodeEncoding to support big-endian byte ordering
// and not include the Unicode byte order mark.
UnicodeEncoding unicodeBigEndianNoBOM =
new UnicodeEncoding(true, false);
// Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicode.Equals(unicodeBigEndianNoBOM));
}
public static void DescribeEquivalence(Boolean isEquivalent) {
Console.WriteLine(
"{0} equivalent encoding.", (isEquivalent ? "An" : "Not an")
);
}
}
Imports System.Text
Class UnicodeEncodingExample
Public Shared Sub Main()
' Create a UnicodeEncoding without parameters.
Dim unicodeDefault As New UnicodeEncoding()
' Create a UnicodeEncoding to support little-endian byte ordering
' and include the Unicode byte order mark.
Dim unicodeLittleEndianBOM As New UnicodeEncoding(False, True)
' Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicodeDefault.Equals(unicodeLittleEndianBOM))
' Create a UnicodeEncoding to support little-endian byte ordering
' and not include the Unicode byte order mark.
Dim unicodeLittleEndianNoBOM As New UnicodeEncoding(False, False)
' Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicodeDefault.Equals(unicodeLittleEndianNoBOM))
' Create a UnicodeEncoding to support big-endian byte ordering
' and include the Unicode byte order mark.
Dim unicodeBigEndianBOM As New UnicodeEncoding(True, True)
' Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicodeDefault.Equals(unicodeBigEndianBOM))
' Create a UnicodeEncoding to support big-endian byte ordering
' and not include the Unicode byte order mark.
Dim unicodeBigEndianNoBOM As New UnicodeEncoding(True, False)
' Compare this UnicodeEncoding to the UnicodeEncoding without parameters.
DescribeEquivalence(unicodeDefault.Equals(unicodeBigEndianNoBOM))
End Sub
Public Shared Sub DescribeEquivalence(isEquivalent As Boolean)
Dim phrase as String
If isEquivalent Then
phrase = "An"
Else
phrase = "Not an"
End If
Console.WriteLine("{0} equivalent encoding.", phrase)
End Sub
End Class
注釈
このコンストラクターは、無効なエンコードが検出されたときに例外をスローしないインスタンスを作成します。
注意事項
セキュリティ上の理由から、コンストラクターを呼び出し、その引数を UnicodeEncoding(Boolean, Boolean, Boolean) に設定することで、エラー検出をthrowOnInvalidBytes
true
有効にする必要があります。
パラメーターは byteOrderMark
、 メソッドの操作を GetPreamble 制御します。 の場合 true
、メソッドは UTF-16 形式の Unicode バイトオーダー マーク (BOM) を含むバイト配列を返します。 の場合 false
は、長さ 0 のバイト配列が返されます。 ただし、 を にtrue
設定byteOrderMark
しても、メソッドはGetBytesバイト配列の先頭で BOM の前に付くことはなく、GetByteCountまた、バイト数に BOM のバイト数が含まれることはありません。
こちらもご覧ください
適用対象
UnicodeEncoding(Boolean, Boolean, Boolean)
UnicodeEncoding クラスの新しいインスタンスを初期化します。 パラメーターでは、ビッグ エンディアン バイト順を使用するかどうか、Unicode バイト順マークを付加するかどうか、および無効なエンコーディングを検出したときに例外をスローするかどうかを指定します。
public:
UnicodeEncoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes);
public UnicodeEncoding (bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes);
new System.Text.UnicodeEncoding : bool * bool * bool -> System.Text.UnicodeEncoding
Public Sub New (bigEndian As Boolean, byteOrderMark As Boolean, throwOnInvalidBytes As Boolean)
パラメーター
- bigEndian
- Boolean
最上位バイトが先頭に配置されるビッグ エンディアン バイト順を使用する場合は true
。最下位バイトが先頭に配置されるリトル エンディアン バイト順を使用する場合は false
。
- byteOrderMark
- Boolean
GetPreamble() メソッドが Unicode バイト順マークを返すよう指定する場合は true
、それ以外の場合は false
。
- throwOnInvalidBytes
- Boolean
無効なエンコーディングが検出された場合に、例外をスローすることを指定する場合は true
。それ以外の場合は false
。
例
次の例では、 の動作 UnicodeEncodingを示します。エラー検出が有効になっている場合とない場合の両方です。
using namespace System;
using namespace System::Text;
void PrintDecodedString( array<Byte>^bytes, Encoding^ enc );
int main()
{
// Create an instance of UnicodeEncoding using little-endian byte order.
// This will be used for encoding.
UnicodeEncoding^ u16LE = gcnew UnicodeEncoding( false,true );
// Create two instances of UnicodeEncoding using big-endian byte order: one with error detection and one without.
// These will be used for decoding.
UnicodeEncoding^ u16withED = gcnew UnicodeEncoding( true,true,true );
UnicodeEncoding^ u16noED = gcnew UnicodeEncoding( true,true,false );
// Create byte arrays from the same string containing the following characters:
// Latin Small Letter Z (U+007A)
// Latin Small Letter A (U+0061)
// Combining Breve (U+0306)
// Latin Small Letter AE With Acute (U+01FD)
// Greek Small Letter Beta (U+03B2)
// Latin Capital Letter U with Diaeresis (U+00DC)
String^ myStr = "za\u0306\u01FD\u03B2\u00DC";
// Encode the string using little-endian byte order.
array<Byte>^myBytes = gcnew array<Byte>(u16LE->GetByteCount( myStr ));
u16LE->GetBytes( myStr, 0, myStr->Length, myBytes, 0 );
// Decode the byte array with error detection.
Console::WriteLine( "Decoding with error detection:" );
PrintDecodedString( myBytes, u16withED );
// Decode the byte array without error detection.
Console::WriteLine( "Decoding without error detection:" );
PrintDecodedString( myBytes, u16noED );
}
// Decode the bytes and display the string.
void PrintDecodedString( array<Byte>^bytes, Encoding^ enc )
{
try
{
Console::WriteLine( " Decoded string: {0}", enc->GetString( bytes, 0, bytes->Length ) );
}
catch ( System::ArgumentException^ e )
{
Console::WriteLine( e );
}
Console::WriteLine();
}
using System;
using System.Text;
public class SamplesUnicodeEncoding {
public static void Main() {
// Create an instance of UnicodeEncoding using little-endian byte order.
// This will be used for encoding.
UnicodeEncoding u16LE = new UnicodeEncoding( false, true );
// Create two instances of UnicodeEncoding using big-endian byte order: one with error detection and one without.
// These will be used for decoding.
UnicodeEncoding u16withED = new UnicodeEncoding( true, true, true );
UnicodeEncoding u16noED = new UnicodeEncoding( true, true, false );
// Create byte arrays from the same string containing the following characters:
// Latin Small Letter Z (U+007A)
// Latin Small Letter A (U+0061)
// Combining Breve (U+0306)
// Latin Small Letter AE With Acute (U+01FD)
// Greek Small Letter Beta (U+03B2)
// Latin Capital Letter U with Diaeresis (U+00DC)
String myStr = "za\u0306\u01FD\u03B2\u00DC";
// Encode the string using little-endian byte order.
byte[] myBytes = new byte[u16LE.GetByteCount( myStr )];
u16LE.GetBytes( myStr, 0, myStr.Length, myBytes, 0 );
// Decode the byte array with error detection.
Console.WriteLine( "Decoding with error detection:" );
PrintDecodedString( myBytes, u16withED );
// Decode the byte array without error detection.
Console.WriteLine( "Decoding without error detection:" );
PrintDecodedString( myBytes, u16noED );
}
// Decode the bytes and display the string.
public static void PrintDecodedString( byte[] bytes, Encoding enc ) {
try {
Console.WriteLine( " Decoded string: {0}", enc.GetString( bytes, 0, bytes.Length ) );
}
catch ( System.ArgumentException e ) {
Console.WriteLine( e.ToString() );
}
Console.WriteLine();
}
}
Imports System.Text
Public Class SamplesUnicodeEncoding
Public Shared Sub Main()
' Create an instance of UnicodeEncoding using little-endian byte order.
' This will be used for encoding.
Dim u16LE As New UnicodeEncoding(False, True)
' Create two instances of UnicodeEncoding using big-endian byte order: one with error detection and one without.
' These will be used for decoding.
Dim u16withED As New UnicodeEncoding(True, True, True)
Dim u16noED As New UnicodeEncoding(True, True, False)
' Create byte arrays from the same string containing the following characters:
' Latin Small Letter Z (U+007A)
' Latin Small Letter A (U+0061)
' Combining Breve (U+0306)
' Latin Small Letter AE With Acute (U+01FD)
' Greek Small Letter Beta (U+03B2)
' Latin Capital Letter U with Diaeresis (U+00DC)
Dim myStr As String = "za" & ChrW(&H0306) & ChrW(&H01FD) & ChrW(&H03B2) & ChrW(&H00DC)
' Encode the string using little-endian byte order.
Dim myBytes(u16LE.GetByteCount(myStr)) As Byte
u16LE.GetBytes(myStr, 0, myStr.Length, myBytes, 0)
' Decode the byte array with error detection.
Console.WriteLine("Decoding with error detection:")
PrintDecodedString(myBytes, u16withED)
' Decode the byte array without error detection.
Console.WriteLine("Decoding without error detection:")
PrintDecodedString(myBytes, u16noED)
End Sub
' Decode the bytes and display the string.
Public Shared Sub PrintDecodedString(bytes() As Byte, enc As Encoding)
Try
Console.WriteLine(" Decoded string: {0}", enc.GetString(bytes, 0, bytes.Length))
Catch e As System.ArgumentException
Console.WriteLine(e.ToString())
End Try
Console.WriteLine()
End Sub
End Class
注釈
パラメーターは byteOrderMark
、 メソッドの操作を GetPreamble 制御します。 の場合 true
、メソッドは UTF-16 形式の Unicode バイトオーダー マーク (BOM) を含むバイト配列を返します。 の場合 false
は、長さ 0 のバイト配列が返されます。 ただし、 を にtrue
設定byteOrderMark
しても、メソッドはGetBytesバイト配列の先頭で BOM の前に付くことはなく、GetByteCountまた、バイト数に BOM のバイト数が含まれることはありません。
パラメーターが throwOnInvalidBytes
の場合、 true
無効なバイト シーケンスを検出するメソッドは をスローします System.ArgumentException。 それ以外の場合、メソッドは例外をスローせず、無効なシーケンスは無視されます。
注意事項
セキュリティ上の理由から、このコンストラクターを使用して クラスの UnicodeEncoding インスタンスを作成し、 を に設定 throwOnInvalidBytes
してエラー検出を true
有効にする必要があります。
こちらもご覧ください
適用対象
.NET