文字のシーケンスを UTF-7 でエンコードされたバイトのシーケンスに変換できるエンコーダを取得します。
Overrides Public Function GetEncoder() As Encoder
[C#]
public override Encoder GetEncoder();
[C++]
public: Encoder* GetEncoder();
[JScript]
public override function GetEncoder() : Encoder;
戻り値
Encoder 。
解説
GetBytes メソッドは、隣接する文字ブロックを隣接するバイト ブロックに変換 (エンコード) します。 GetEncoder メソッドは、ブロックにまたがる文字を正確にデコードできるように呼び出し間のステータス情報を維持する Encoder を返します。
GetDecoder と GetEncoder は、ネットワーク伝送やファイル操作に役立ちます。これは、ネットワーク伝送やファイル操作では、完全なストリームではなくデータのブロックを処理することが多いためです。
使用例
[Visual Basic, C#, C++] chars
内の文字のシーケンスを UTF-7 でエンコードされた bytes
内のバイトのシーケンスに変換するエンコーダを、 GetEncoder メソッドを使用して取得する方法を次の例に示します。
Imports System
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class UTF7EncodingExample
Public Shared Sub Main()
'Characters:
' ChrW(97) = a
' ChrW(98) = b
' ChrW(99) = c
' ChrW(768) = `
' ChrW(41120) = valid unicode code point, but not a character
Dim chars() As Char = {ChrW(97), ChrW(98), ChrW(99), ChrW(768), ChrW(41120)}
Dim bytes() As Byte
Dim utf7Encoder As Encoder = Encoding.UTF7.GetEncoder()
Dim byteCount As Integer = utf7Encoder.GetByteCount(chars, 2, 3, True)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = utf7Encoder.GetBytes(chars, 2, 3, bytes, 0, True)
Console.WriteLine("{0} bytes used to encode characters.", bytesEncodedCount)
Console.Write("Encoded bytes: ")
Dim b As Byte
For Each b In bytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
End Sub 'Main
End Class 'UTF7EncodingExample
[C#]
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
Char[] chars = new Char[] {'a', 'b', 'c', '\u0300', '\ua0a0'};
Byte[] bytes;
Encoder utf7Encoder = Encoding.UTF7.GetEncoder();
int byteCount = utf7Encoder.GetByteCount(chars, 2, 3, true);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf7Encoder.GetBytes(chars, 2, 3, bytes, 0, true);
Console.WriteLine(
"{0} bytes used to encode characters.", bytesEncodedCount
);
Console.Write("Encoded bytes: ");
foreach (Byte b in bytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
Char chars[] = {'a', 'b', 'c', L'\u0300', L'\ua0a0'};
Byte bytes[];
Encoder * utf7Encoder = Encoding::UTF7 -> GetEncoder();
int byteCount = utf7Encoder -> GetByteCount(chars, 2, 3, true);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf7Encoder -> GetBytes(chars, 2, 3, bytes, 0, true);
Console::WriteLine(S"{0} bytes used to encode characters.", __box(bytesEncodedCount));
Console::Write(S"Encoded bytes: ");
IEnumerator* myEnum = bytes->GetEnumerator();
while (myEnum->MoveNext())
{
Byte b = *__try_cast<Byte __gc*>(myEnum->Current);
Console::Write(S"[{0}]", __box(b));
}
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 名前空間 | GetByteCount | GetBytes