次の方法で共有


UTF7Encoding.GetDecoder メソッド

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

Overrides Public Function GetDecoder() As Decoder
[C#]
public override Decoder GetDecoder();
[C++]
public: Decoder* GetDecoder();
[JScript]
public override function GetDecoder() : Decoder;

戻り値

Decoder

解説

GetChars メソッドは、隣接するバイト ブロックを隣接する文字ブロックに変換 (デコード) します。 GetDecoder メソッドは、ブロックにまたがる UTF-7 バイト シーケンスを正確にデコードできるように、呼び出し間のステータス情報を維持する Decoder を返します。 Decoder は、ブロックの末尾で後続バイトを保持し、その後続バイトを次のデコード操作に使用します。

GetDecoderGetEncoder は、ネットワーク伝送やファイル操作に役立ちます。これは、ネットワーク伝送やファイル操作では、完全なストリームではなくデータのブロックを処理することが多いためです。

使用例

[Visual Basic, C#, C++] UTF-7 でエンコードされた bytes 内のバイトを chars 内の文字のシーケンスに変換するデコーダを、 GetDecoder メソッドを使用して取得する方法を次の例に示します。

 
Imports System
Imports System.Text

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim chars() As Char
        Dim bytes() As Byte = {99, 43, 65, 119, 67, 103, 111, 65, 45}
        
        Dim utf7Decoder As Decoder = Encoding.UTF7.GetDecoder()
        
        Dim charCount As Integer = utf7Decoder.GetCharCount(bytes, 0, bytes.Length)
        chars = New Char(charCount - 1) {}
        Dim charsDecodedCount As Integer = utf7Decoder.GetChars(bytes, 0, bytes.Length, chars, 0)
        
        Console.WriteLine("{0} characters used to decode bytes.", charsDecodedCount)
        
        Console.Write("Decoded chars: ")
        Dim c As Char
        For Each c In  chars
            Console.Write("[{0}]", c)
        Next c
        Console.WriteLine()
    End Sub 'Main
End Class 'UTF7EncodingExample

[C#] 
using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        Char[] chars;
        Byte[] bytes = new Byte[] {
            99, 43, 65, 119, 67, 103, 111, 65, 45
        };

        Decoder utf7Decoder = Encoding.UTF7.GetDecoder();

        int charCount = utf7Decoder.GetCharCount(bytes, 0, bytes.Length);
        chars = new Char[charCount];
        int charsDecodedCount = utf7Decoder.GetChars(bytes, 0, bytes.Length, chars, 0);

        Console.WriteLine(
            "{0} characters used to decode bytes.", charsDecodedCount
        );

        Console.Write("Decoded chars: ");
        foreach (Char c in chars) {
            Console.Write("[{0}]", c);
        }
        Console.WriteLine();
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Text;
using namespace System::Collections;

int main()
{
   Char chars[];
   Byte bytes[] = 
   {
      99, 43, 65, 119, 67, 103, 111, 65, 45
   };

   Decoder * utf7Decoder = Encoding::UTF7 -> GetDecoder();

   int charCount = utf7Decoder -> GetCharCount(bytes, 0, bytes -> Length);
   chars = new Char[charCount];
   int charsDecodedCount = utf7Decoder -> GetChars(bytes, 0, bytes -> Length, chars, 0);

   Console::WriteLine(S"{0} characters used to decode bytes.", __box(charsDecodedCount));

   Console::Write(S"Decoded chars: ");
   IEnumerator* myEnum = chars->GetEnumerator();
   while (myEnum->MoveNext())
   {
      Char* c = __try_cast<Char*>(myEnum->Current);
      Console::Write(S"[{0}]", c -> ToString());
   }
   Console::WriteLine();
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

UTF7Encoding クラス | UTF7Encoding メンバ | System.Text 名前空間 | GetCharCount | GetChars