EncoderReplacementFallback クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文<SerializableAttribute> _ Public NotInheritable Class EncoderReplacementFallback Inherits EncoderFallback
解説エンコード操作やデコード操作が失敗する一般的な理由は、基底のエンコーディング クラスで、文字とそれに対応するバイト シーケンスをマップできないことです。入力文字を出力バイト シーケンスに変換できない場合、EncoderReplacementFallback オブジェクトは、元の入力文字の代わりに、指定された置換文字列を使用します。変換プロセスは、置換文字列をエンコードしたうえで、元の入力の残りを引き続き処理します。
EncoderReplacementFallback オブジェクトの値は、このオブジェクトの初期化に使用された置換文字列です。
使用例EncoderReplacementFallback クラスのコード例を次に示します。
' This example demonstrates the EncoderReplacementFallback class. Imports System Imports System.Text Class Sample Public Shared Sub Main() ' Create an encoding, which is equivalent to calling the ' ASCIIEncoding class constructor. ' The EncoderReplacementFallback parameter specifies that the ' string, "(unknown)", replace characters that cannot be encoded. ' A decoder replacement fallback is also specified, but in this ' code example the decoding operation cannot fail. Dim erf As New EncoderReplacementFallback("(unknown)") Dim drf As New DecoderReplacementFallback("(error)") Dim ae As Encoding = Encoding.GetEncoding("us-ascii", erf, drf) ' The input string consists of the Unicode characters LEFT POINTING ' DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING ' DOUBLE ANGLE QUOTATION MARK (U+00BB). ' The encoding can only encode characters in the US-ASCII range of U+0000 ' through U+007F. Consequently, the characters bracketing the 'X' character ' are replaced with the fallback replacement string, "(unknown)". Dim inputString As String = "«X»" Dim decodedString As String Dim twoNewLines As String = vbCrLf & vbCrLf Dim ix As Integer = 0 Dim numberOfEncodedBytes As Integer = ae.GetByteCount(inputString) ' Counteract the compiler adding an extra byte to the array. Dim encodedBytes(numberOfEncodedBytes - 1) As Byte ' -------------------------------------------------------------------------- Console.Clear() ' Display the name of the encoding. Console.WriteLine("The name of the encoding is ""{0}""." & vbCrLf, ae.WebName) ' Display the input string in text. Console.WriteLine("Input string ({0} characters): ""{1}""", _ inputString.Length, inputString) ' Display the input string in hexadecimal. ' Each element is converted to an integer with Convert.ToInt32. Console.Write("Input string in hexadecimal: ") Dim c As Char For Each c In inputString.ToCharArray() Console.Write("0x{0:X2} ", Convert.ToInt32(c)) Next c Console.Write(twoNewLines) ' -------------------------------------------------------------------------- ' Encode the input string. Console.WriteLine("Encode the input string...") numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, _ encodedBytes, 0) ' Display the encoded bytes. ' Each element is converted to an integer with Convert.ToInt32. Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):" & vbCrLf, _ numberOfEncodedBytes) ix = 0 Dim b As Byte For Each b In encodedBytes Console.Write("0x{0:X2} ", Convert.ToInt32(b)) ix += 1 If 0 = ix Mod 6 Then Console.WriteLine() End If Next b Console.Write(twoNewLines) ' -------------------------------------------------------------------------- ' Decode the encoded bytes, yielding a reconstituted string. Console.WriteLine("Decode the encoded bytes...") decodedString = ae.GetString(encodedBytes) ' Display the input string and the decoded string for comparison. Console.WriteLine("Input string: ""{0}""", inputString) Console.WriteLine("Decoded string:""{0}""", decodedString) End Sub 'Main End Class 'Sample ' 'This code example produces the following results: ' 'The name of the encoding is "us-ascii". ' 'Input string (3 characters): "X" 'Input string in hexadecimal: 0xAB 0x58 0xBB ' 'Encode the input string... 'Encoded bytes in hexadecimal (19 bytes): ' '0x28 0x75 0x6E 0x6B 0x6E 0x6F '0x77 0x6E 0x29 0x58 0x28 0x75 '0x6E 0x6B 0x6E 0x6F 0x77 0x6E '0x29 ' 'Decode the encoded bytes... 'Input string: "X" 'Decoded string:"(unknown)X(unknown)" '
// This example demonstrates the EncoderReplacementFallback class. using System; using System.Text; class Sample { public static void Main() { // Create an encoding, which is equivalent to calling the // ASCIIEncoding class constructor. // The EncoderReplacementFallback parameter specifies that the // string, "(unknown)", replace characters that cannot be encoded. // A decoder replacement fallback is also specified, but in this // code example the decoding operation cannot fail. Encoding ae = Encoding.GetEncoding( "us-ascii", new EncoderReplacementFallback("(unknown)"), new DecoderReplacementFallback("(error)")); // The input string consists of the Unicode characters LEFT POINTING // DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING // DOUBLE ANGLE QUOTATION MARK (U+00BB). // The encoding can only encode characters in the US-ASCII range of U+0000 // through U+007F. Consequently, the characters bracketing the 'X' character // are replaced with the fallback replacement string, "(unknown)". string inputString = "\u00abX\u00bb"; string decodedString; string twoNewLines = "\n\n"; byte[] encodedBytes = new byte[ae.GetByteCount(inputString)]; int numberOfEncodedBytes = 0; int ix = 0; // -------------------------------------------------------------------------- Console.Clear(); // Display the name of the encoding. Console.WriteLine("The name of the encoding is \"{0}\".\n", ae.WebName); // Display the input string in text. Console.WriteLine("Input string ({0} characters): \"{1}\"", inputString.Length, inputString); // Display the input string in hexadecimal. Console.Write("Input string in hexadecimal: "); foreach (char c in inputString.ToCharArray()) { Console.Write("0x{0:X2} ", (int)c); } Console.Write(twoNewLines); // -------------------------------------------------------------------------- // Encode the input string. Console.WriteLine("Encode the input string..."); numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, encodedBytes, 0); // Display the encoded bytes. Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):\n", numberOfEncodedBytes); ix = 0; foreach (byte b in encodedBytes) { Console.Write("0x{0:X2} ", (int)b); ix++; if (0 == ix % 6) Console.WriteLine(); } Console.Write(twoNewLines); // -------------------------------------------------------------------------- // Decode the encoded bytes, yielding a reconstituted string. Console.WriteLine("Decode the encoded bytes..."); decodedString = ae.GetString(encodedBytes); // Display the input string and the decoded string for comparison. Console.WriteLine("Input string: \"{0}\"", inputString); Console.WriteLine("Decoded string:\"{0}\"", decodedString); } } /* This code example produces the following results: The name of the encoding is "us-ascii". Input string (3 characters): "X" Input string in hexadecimal: 0xAB 0x58 0xBB Encode the input string... Encoded bytes in hexadecimal (19 bytes): 0x28 0x75 0x6E 0x6B 0x6E 0x6F 0x77 0x6E 0x29 0x58 0x28 0x75 0x6E 0x6B 0x6E 0x6F 0x77 0x6E 0x29 Decode the encoded bytes... Input string: "X" Decoded string:"(unknown)X(unknown)" */
// This example demonstrates the EncoderReplacementFallback class. using namespace System; using namespace System::Text; int main() { // Create an encoding, which is equivalent to calling the // ASCIIEncoding class constructor. // The EncoderReplacementFallback parameter specifies that the // string, "(unknown)", replace characters that cannot be encoded. // A decoder replacement fallback is also specified, but in this // code example the decoding operation cannot fail. Encoding^ ascii = Encoding::GetEncoding("us-ascii", gcnew EncoderReplacementFallback("(unknown)"), gcnew DecoderReplacementFallback("(error)")); // The input string consists of the Unicode characters LEFT POINTING // DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT // POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB). // The encoding can only encode characters in the US-ASCII range of // U+0000 through U+007F. Consequently, the characters bracketing the // 'X' character are replaced with the fallback replacement string , // "(unknown)". String^ inputString = "\u00abX\u00bb"; String^ decodedString; String^ twoNewLines = Environment::NewLine + Environment::NewLine; array <Byte>^ encodedBytes = gcnew array<Byte>(ascii->GetByteCount(inputString)); int numberOfEncodedBytes = 0; // --------------------------------------------------------------------- Console::Clear(); // Display the name of the encoding. Console::WriteLine("The name of the encoding is \"{0}\".{1}", ascii->WebName, Environment::NewLine); // Display the input string in text. Console::WriteLine("Input string ({0} characters): \"{1}\"" , inputString->Length, inputString); // Display the input string in hexadecimal. Console::Write("Input string in hexadecimal: "); for each (char c in inputString) { Console::Write("0x{0:X2} ", c); } Console::Write(twoNewLines); // --------------------------------------------------------------------- // Encode the input string. Console::WriteLine("Encode the input string..."); numberOfEncodedBytes = ascii->GetBytes(inputString, 0, inputString->Length , encodedBytes, 0); // Display the encoded bytes. Console::WriteLine("Encoded bytes in hexadecimal ({0} bytes):{1}", numberOfEncodedBytes, Environment::NewLine); for(int i = 0; i < encodedBytes->Length; i++) { Console::Write("0x{0:X2} ", encodedBytes[i]); if(((i + 1) % 6) == 0) { Console::WriteLine(); } } Console::Write(twoNewLines); // --------------------------------------------------------------------- // Decode the encoded bytes, yielding a reconstituted string. Console::WriteLine("Decode the encoded bytes..."); decodedString = ascii->GetString(encodedBytes); // Display the input string and the decoded string for comparison. Console::WriteLine("Input string: \"{0}\"", inputString); Console::WriteLine("Decoded string:\"{0}\"", decodedString); } /* This code example produces the following results: The name of the encoding is "us-ascii". Input string (3 characters): "X" Input string in hexadecimal: 0xAB 0x58 0xBB Encode the input string... Encoded bytes in hexadecimal (19 bytes): 0x28 0x75 0x6E 0x6B 0x6E 0x6F 0x77 0x6E 0x29 0x58 0x28 0x75 0x6E 0x6B 0x6E 0x6F 0x77 0x6E 0x29 Decode the encoded bytes... Input string: "X" Decoded string:"(unknown)X(unknown)" */
継承階層System.Text.EncoderFallback
System.Text.EncoderReplacementFallback
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照EncoderReplacementFallback メンバ
System.Text 名前空間
EncoderReplacementFallbackBuffer
EncoderReplacementFallback
DefaultString
EncoderReplacementFallback コンストラクタ ()
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照EncoderReplacementFallback コンストラクタ (String)
アセンブリ: mscorlib (mscorlib.dll 内)
構文Public Sub New ( _ replacement As String _ )
Dim replacement As String Dim instance As New EncoderReplacementFallback(replacement)
public EncoderReplacementFallback ( string replacement )
public: EncoderReplacementFallback ( String^ replacement )
public EncoderReplacementFallback ( String replacement )
public function EncoderReplacementFallback ( replacement : String )
例外
解説
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照EncoderReplacementFallback クラス
EncoderReplacementFallback メンバ
System.Text 名前空間
DefaultString
EncoderReplacementFallback
EncoderReplacementFallback コンストラクタ
オーバーロードの一覧| 名前 | 説明 | 
|---|---|
| EncoderReplacementFallback () | EncoderReplacementFallback クラスの新しいインスタンスを初期化します。 | 
| EncoderReplacementFallback (String) | 指定した置換文字列を使用して、EncoderReplacementFallback クラスの新しいインスタンスを初期化します。 | 
参照EncoderReplacementFallback プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
    |  ExceptionFallback | 入力文字をエンコードできない場合に例外をスローする EncoderFallback オブジェクトを取得します。 ( EncoderFallback から継承されます。) | 
    |  MaxCharCount | オーバーライドされます。 この EncoderReplacementFallback オブジェクトの置換文字列に含まれる文字数を取得します。 | 
    |  ReplacementFallback | エンコードできない入力文字の代わりに代替文字列を作成する EncoderFallback オブジェクトを取得します。 ( EncoderFallback から継承されます。) | 
参照関連項目
EncoderReplacementFallback クラスSystem.Text 名前空間
EncoderReplacementFallbackBuffer
EncoderReplacementFallback
DefaultString
EncoderReplacementFallback メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
    |  CreateFallbackBuffer | オーバーライドされます。 この EncoderReplacementFallback オブジェクトの置換文字列で初期化される EncoderFallbackBuffer オブジェクトを作成します。 | 
    |  Equals | オーバーロードされます。 オーバーライドされます。 | 
    |  GetHashCode | オーバーライドされます。 この EncoderReplacementFallback オブジェクトの値のハッシュ コードを取得します。 | 
    |  GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | 
    |  ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | 
    |  ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) | 
参照関連項目
EncoderReplacementFallback クラスSystem.Text 名前空間
EncoderReplacementFallbackBuffer
EncoderReplacementFallback
DefaultString
EncoderReplacementFallback メンバ
出力バイト シーケンスに変換できない入力文字のために、フォールバックと呼ばれるエラー処理機構を提供します。フォールバックは、元の入力文字の代わりに、ユーザー指定の置換文字列を提供します。このクラスは継承できません。
EncoderReplacementFallback データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
    |  ExceptionFallback | 入力文字をエンコードできない場合に例外をスローする EncoderFallback オブジェクトを取得します。(EncoderFallback から継承されます。) | 
    |  MaxCharCount | オーバーライドされます。 この EncoderReplacementFallback オブジェクトの置換文字列に含まれる文字数を取得します。 | 
    |  ReplacementFallback | エンコードできない入力文字の代わりに代替文字列を作成する EncoderFallback オブジェクトを取得します。(EncoderFallback から継承されます。) | 
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
    |  CreateFallbackBuffer | オーバーライドされます。 この EncoderReplacementFallback オブジェクトの置換文字列で初期化される EncoderFallbackBuffer オブジェクトを作成します。 | 
    |  Equals | オーバーロードされます。 オーバーライドされます。 | 
    |  GetHashCode | オーバーライドされます。 この EncoderReplacementFallback オブジェクトの値のハッシュ コードを取得します。 | 
    |  GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | 
    |  ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | 
    |  ToString | 現在の Object を表す String を返します。 (Object から継承されます。) | 
参照関連項目
EncoderReplacementFallback クラスSystem.Text 名前空間
EncoderReplacementFallbackBuffer
EncoderReplacementFallback
DefaultString
Weblioに収録されているすべての辞書からEncoderReplacementFallbackを検索する場合は、下記のリンクをクリックしてください。
                     全ての辞書からEncoderReplacementFallback
                    を検索
                - EncoderReplacementFallbackのページへのリンク