
| Visual Basic (Declaration) | |
|---|---|
Public Class ImapUTF7Encoding Inherits System.Text.Encoding | |
| Visual Basic (Usage) | Copy Code |
|---|---|
Dim instance As ImapUTF7Encoding | |
| C# | |
|---|---|
public class ImapUTF7Encoding : System.Text.Encoding | |
| Managed Extensions for C++ | |
|---|---|
public __gc class ImapUTF7Encoding : public System.Text.Encoding | |
| C++/CLI | |
|---|---|
public ref class ImapUTF7Encoding : public System.Text.Encoding | |
The following example demonstrates encoding/decoding data using the ImapUTF7Encoding class.
| Visual Basic | Copy Code |
|---|---|
Private Sub ImapUTF7Test() ' Create Unicode character array ' ChrW(35) = # ' ChrW(37) = % ' ChrW(928) = Pi ' ChrW(931) = Sigma Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)} ' Initialize ImapUTF7 encoder Dim ImapUTF7 As New ImapUTF7Encoding() ' Determine how big target byte array needs to be Dim Count As Integer = ImapUTF7.GetByteCount(chars, 0, chars.Length) ' You could also use the following to get the maximum size ' Dim Count As Integer = ImapUTF7.GetMaxByteCount(chars.Length) Debug.WriteLine(Count & " bytes needed to encode characters.") ' Initialize target byte array Dim Bytes(Count - 1) As Byte ' Encode data Count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0) Debug.WriteLine(Count & " bytes encoded.") ' Show encoded bytes Dim B As Byte For Each B In Bytes Debug.WriteLine(B) Next ' Now to decode...first determine how big target char array needs to be Count = ImapUTF7.GetCharCount(Bytes, 0, Bytes.Length) ' You could also use the following to get the maximum size ' Count = ImapUTF7.GetMaxCharCount(Bytes.Length) Debug.WriteLine(Count & " characters needed to decode bytes.") ' Initialize target char array ReDim chars(Count - 1) ' Decode data Count = ImapUTF7.GetChars(Bytes, 0, Bytes.Length, chars, 0) Debug.WriteLine(Count & " bytes decoded.") ' Show decoded characters Dim C As Char For Each C In chars Debug.WriteLine(C) Next End Sub | |
| C# | Copy Code |
|---|---|
private void ImapUTF7Test() { // Create Unicode character array char[] chars = { '\u0023', // # '\u0025', // % '\u03a0', // Pi '\u03a3' // Sigma }; // Initialize ImapUTF7 encoder ImapUTF7Encoding ImapUTF7 = new ImapUTF7Encoding(); // Determine how big target byte array needs to be int count = ImapUTF7.GetByteCount(chars, 0, chars.Length); // You could also use the following to get the maximum size // int count = ImapUTF7.GetMaxByteCount(chars.Length); Debug.WriteLine(count + " bytes needed to encode characters."); // Initialize target byte array byte[] bytes = new byte[count]; // Encode data count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0); Debug.WriteLine(count + " bytes encoded."); // Show encoded bytes foreach(byte b in bytes) Debug.WriteLine(b); // Now to decode...first determine how big target char array needs to be count = ImapUTF7.GetCharCount(bytes, 0, bytes.Length); // You could also use the following to get the maximum size // count = ImapUTF7.GetMaxCharCount(bytes.Length); Debug.WriteLine(count + " characters needed to decode bytes."); // Initialize target char array chars = new char[count]; // Decode data count = ImapUTF7.GetChars(bytes, 0, bytes.Length, chars, 0); Debug.WriteLine(count + " bytes decoded."); // Show decoded characters foreach(char c in chars) Debug.WriteLine(c); } | |
RFC 2060 describes a modified UTF-7 encoding to use for IMAP mailbox names, as standard UTF-7 encoding causes some conflict with certain characters within the IMAP protocol (see the RFC, section 5.1.3 for a list of conflicts).
The PowerTCP Imap component uses this class to automatically manage mailbox name encoding/decoding.
System.Object
System.Text.Encoding
Dart.PowerTCP.Mail.ImapUTF7Encoding
Target Platforms: Microsoft .NET Framework 2.0