(0) exportieren Drucken
Alle erweitern

UTF7Encoding-Klasse

Stellt eine UTF-7-Codierung von Unicode-Zeichen dar.

Namespace: System.Text
Assembly: mscorlib (in mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class UTF7Encoding : Encoding
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class UTF7Encoding extends Encoding
SerializableAttribute 
ComVisibleAttribute(true) 
public class UTF7Encoding extends Encoding

Beim Codieren werden Unicode-Zeichen in eine Bytefolge transformiert. Beim Decodieren wird dieser Vorgang umgekehrt: Eine Folge codierter Bytes wird dabei in Unicode-Zeichen transformiert.

Gemäß Unicode-Standard wird jedem Zeichen aller unterstützten Schriften ein Codepunkt (eine Zahl) zugewiesen. Dieser Codepunkt kann beispielsweise mit UTF (Unicode Transformation Format) codiert werden. Im Unicode-Standard, Version 3.2, werden folgende UTF-Arten verwendet:

  • UTF-8, bei dem jeder Codepunkt als eine Folge von ein bis vier Bytes dargestellt wird.

  • UTF-16, bei dem jeder Codepunkt als eine Folge von ein bis zwei 16-Bit-Ganzzahlen dargestellt wird.

  • UTF-32, bei dem jeder Codepunkt als eine 32-Bit-Ganzzahl dargestellt wird.

VorsichtVorsicht

UTF7Encoding stellt keine Fehlererkennung bereit. Aus Sicherheitsgründen wird empfohlen, UTF8Encoding, UnicodeEncoding oder UTF32Encoding zu verwenden und die Fehlererkennung zu aktivieren.

Mit der GetByteCount-Methode wird bestimmt, wie viele Bytes sich beim Codieren einer Reihe von Unicode-Zeichen ergeben, und die GetBytes-Methode führt die eigentliche Codierung aus.

Aanalog dazu bestimmt die GetCharCount-Methode, wie viele Zeichen sich aus der Decodierung einer Bytefolge ergeben, und die GetChars-Methode und die GetString-Methode führen die eigentliche Decodierung aus.

UTF7Encoding entspricht der Windows-Codepage 65000.

HinweisHinweis

Der Zustand eines UTF-7-codierten Objektes wird nicht beibehalten, wenn das Objekt mit verschiedenen Versionen von .NET Framework serialisiert und deserialisiert wird.

Im folgenden Codebeispiel wird veranschaulicht, wie mit UTF7Encoding eine Folge von Unicode-Zeichen codiert und in einem Bytearray gespeichert wird. Beachten Sie, dass keine Daten verloren gehen, wenn das Bytearray wieder in eine Zeichenfolge decodiert wird.

using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        // Create a UTF-7 encoding.
        UTF7Encoding utf7 = new UTF7Encoding();
        
        // A Unicode string with two characters outside a 7-bit code range.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside a 7-bit code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        Byte[] encodedBytes = utf7.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
        
        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = utf7.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    }
}

import System.*;
import System.Text.*;

class UTF7EncodingExample
{
    public static void main(String[] args)
    {
        // Create a UTF-7 encoding.
        UTF7Encoding utf7 = new UTF7Encoding();

        // A Unicode string with two characters outside a 7-bit code range.
        String unicodeString = "This Unicode string contains two characters " 
            + "with codes outside a 7-bit code range, "
            + "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        ubyte encodedBytes[] = utf7.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        for(int iCtr = 0; iCtr < encodedBytes.length; iCtr++) {
            ubyte b = encodedBytes[iCtr];
            Console.Write("[{0}]", String.valueOf(b));
        }
        Console.WriteLine();

        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = utf7.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    } //main
} //UTF7EncodingExample

System.Object
   System.Text.Encoding
    System.Text.UTF7Encoding

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Anzeigen:
© 2014 Microsoft