EncodingStatic: UTF7 (get) |
Gets an encoding for the UTF-7 format.
Public Property Get UTF7 ( ) As UTF7Encoding
UTF-7 encoding is used primarily in environments that historically have been restricted to 7 bits, such as NNTP and some email applications. Because of issues with robustness and security, you should not use UTF7 encoding in 8-bit environments where UTF-8 encoding can be used instead.
Read Only.
The following example determines the number of bytes required to encode a character array, encodes the characters, and displays the resulting bytes.
Public Sub Main() Dim Chars() As Integer Dim U7 As Encoding Dim U8 As Encoding Dim U16LE As Encoding Dim U16BE As Encoding Dim U32 As Encoding ' The characters to encode: ' Latin Small Letter Z (U+007A) ' Latin Small Letter A (U+0061) ' Combining Breve (U+0306) ' Latin Small Letter AE With Acute (U+01FD) ' Greek Small Letter Beta (U+03B2) ' a high-surrogate value (U+D8FF) ' a low-surrogate value (U+DCFF) Chars = NewChars("z", "a", ChrW$(&H306), ChrW$(&H1FD), ChrW$(&H3B2), ChrW$(&HD8FF), ChrW$(&HDCFF)) Set U7 = Encoding.UTF7 Set U8 = Encoding.UTF8 Set U16LE = Encoding.Unicode Set U16BE = Encoding.BigEndianUnicode Set U32 = Encoding.UTF32 PrintCountsAndBytes Chars, U7 PrintCountsAndBytes Chars, U8 PrintCountsAndBytes Chars, U16LE PrintCountsAndBytes Chars, U16BE PrintCountsAndBytes Chars, U32 End Sub Private Sub PrintCountsAndBytes(ByRef Chars() As Integer, ByVal Enc As Encoding) Dim IBC As Long Dim IMBC As Long Dim Bytes() As Byte Debug.Print CorString.Format("{0,-30} :", Enc.ToString); IBC = Enc.GetByteCount(Chars) Debug.Print CorString.Format(" {0,-3}", IBC); IMBC = Enc.GetMaxByteCount(CorArray.Length(Chars)) Debug.Print CorString.Format(" {0, -3} :", IMBC); Bytes = Enc.GetBytes(Chars) PrintHexBytes Bytes End Sub Private Sub PrintHexBytes(ByRef Bytes() As Byte) Dim i As Long If CorArray.IsNullOrEmpty(Bytes) Then Debug.Print "<none>" Else For i = 0 To UBound(Bytes) Debug.Print CorString.Format("{0:X2} ", Bytes(i)); Next Debug.Print End If End Sub ' This code produces the following output. ' ' CorLib.UTF7Encoding : 18 23 :7A 61 2B 41 77 59 42 2F 51 4F 79 32 50 2F 63 2F 77 2D ' CorLib.UTF8Encoding : 12 24 :7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF ' CorLib.UnicodeEncoding : 14 16 :7A 00 61 00 06 03 FD 01 B2 03 FF D8 FF DC ' CorLib.UnicodeEncoding : 14 16 :00 7A 00 61 03 06 01 FD 03 B2 D8 FF DC FF ' CorLib.UTF32Encoding : 24 32 :7A 00 00 00 61 00 00 00 06 03 00 00 FD 01 00 00 B2 03 00 00 FF FC 04 00