UTF7Encoding Class
Definition
Represents a UTF-7 encoding of Unicode characters.
[System.Runtime.InteropServices.ComVisible(true)]
public class UTF7Encoding : System.Text.Encoding
- Inheritance
- Attributes
Inherited Members
System.Object
System.Text.Encoding
Examples
The following code example demonstrates how to use a UTF7Encoding to encode a string of Unicode characters and store them in a byte array. Notice that when the byte array is decoded back to a string, no data is lost.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
// Create a UTF-7 encoding.
UTF7Encoding^ utf7 = gcnew UTF7Encoding;
// A Unicode string with two characters outside a 7-bit code range.
String^ unicodeString = L"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.
array<Byte>^encodedBytes = utf7->GetBytes( unicodeString );
Console::WriteLine();
Console::WriteLine( "Encoded bytes:" );
IEnumerator^ myEnum = encodedBytes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Byte b = safe_cast<Byte>(myEnum->Current);
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 );
}
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);
}
}
Imports System
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class UTF7EncodingExample
Public Shared Sub Main()
' Create a UTF-7 encoding.
Dim utf7 As New UTF7Encoding()
' A Unicode string with two characters outside a 7-bit code range.
Dim unicodeString As String = _
"This Unicode string contains two characters " & _
"with codes outside a 7-bit code range, " & _
"Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
Console.WriteLine("Original string:")
Console.WriteLine(unicodeString)
' Encode the string.
Dim encodedBytes As Byte() = utf7.GetBytes(unicodeString)
Console.WriteLine()
Console.WriteLine("Encoded bytes:")
Dim b As Byte
For Each b In encodedBytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
' Decode bytes back to string.
' Notice Pi and Sigma characters are still present.
Dim decodedString As String = utf7.GetString(encodedBytes)
Console.WriteLine()
Console.WriteLine("Decoded bytes:")
Console.WriteLine(decodedString)
End Sub
End Class
Remarks
Encoding is the process of transforming a set of Unicode characters into a sequence of bytes. Decoding is the process of transforming a sequence of encoded bytes into a set of Unicode characters.
The UTF-7 encoding represents Unicode characters as sequences of 7-bit ASCII characters. This encoding supports certain protocols for which it is required, most often e-mail or newsgroup protocols. Since UTF-7 is not particularly secure or robust, and most modern systems allow 8-bit encodings, UTF-8 should normally be preferred to UTF-7.
Note
UTF7Encoding does not provide error detection. For security reasons, the application should use UTF8Encoding, UnicodeEncoding, or UTF32Encoding and enable error detection.
For more information about the UTFs and other encodings supported by System.Text, see Character Encoding in the .NET Framework.
The GetByteCount method determines how many bytes result in encoding a set of Unicode characters, and the GetBytes method performs the actual encoding.
Likewise, the GetCharCount method determines how many characters result in decoding a sequence of bytes, and the GetChars and GetString methods perform the actual decoding.
UTF7Encoding corresponds to the Windows code page 65000.
Note
The state of a UTF-7 encoded object is not preserved if the object is serialized and deserialized using different .NET Framework versions.
Constructors
| UTF7Encoding() |
Initializes a new instance of the UTF7Encoding class. |
| UTF7Encoding(Boolean) |
Initializes a new instance of the UTF7Encoding class. A parameter specifies whether to allow optional characters. |
Methods
| Equals(Object) |
Gets a value indicating whether the specified object is equal to the current UTF7Encoding object. |
| GetByteCount(String) |
Calculates the number of bytes produced by encoding the characters in the specified String object. |
| GetByteCount(Char*, Int32) |
Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer. |
| GetByteCount(Char[], Int32, Int32) |
Calculates the number of bytes produced by encoding a set of characters from the specified character array. |
| GetBytes(Char*, Int32, Byte*, Int32) |
Encodes a set of characters starting at the specified character pointer into a sequence of bytes that are stored starting at the specified byte pointer. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Encodes a set of characters from the specified character array into the specified byte array. |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Encodes a set of characters from the specified String into the specified byte array. |
| GetCharCount(Byte[], Int32, Int32) |
Calculates the number of characters produced by decoding a sequence of bytes from the specified byte array. |
| GetCharCount(Byte*, Int32) |
Calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer. |
| GetChars(Byte*, Int32, Char*, Int32) |
Decodes a sequence of bytes starting at the specified byte pointer into a set of characters that are stored starting at the specified character pointer. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Decodes a sequence of bytes from the specified byte array into the specified character array. |
| GetDecoder() |
Obtains a decoder that converts a UTF-7 encoded sequence of bytes into a sequence of Unicode characters. |
| GetEncoder() |
Obtains an encoder that converts a sequence of Unicode characters into a UTF-7 encoded sequence of bytes. |
| GetHashCode() |
Returns the hash code for the current UTF7Encoding object. |
| GetMaxByteCount(Int32) |
Calculates the maximum number of bytes produced by encoding the specified number of characters. |
| GetMaxCharCount(Int32) |
Calculates the maximum number of characters produced by decoding the specified number of bytes. |
| GetString(Byte[], Int32, Int32) |
Decodes a range of bytes from a byte array into a string. |