Поделиться через


UTF7Encoding Класс

Определение

Представляет кодировку UTF-7 символов Юникода.

public ref class UTF7Encoding : System::Text::Encoding
public class UTF7Encoding : System.Text.Encoding
[System.Serializable]
public class UTF7Encoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class UTF7Encoding : System.Text.Encoding
type UTF7Encoding = class
    inherit Encoding
[<System.Serializable>]
type UTF7Encoding = class
    inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type UTF7Encoding = class
    inherit Encoding
Public Class UTF7Encoding
Inherits Encoding
Наследование
UTF7Encoding
Атрибуты

Примеры

В следующем примере кода показано, как использовать UTF7Encoding для кодирования строки символов Юникода и сохранения их в массиве байтов. Обратите внимание, что при декодировании массива байтов обратно в строку данные не теряются.

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.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

Комментарии

Кодирование - это процесс преобразования набора символов Юникода в последовательность байтов. Декодирование — это процесс преобразования последовательности закодированных байтов в набор символов Юникода.

Кодировка UTF-7 представляет символы Юникода в виде последовательностей 7-разрядных символов ASCII. Эта кодировка поддерживает определенные протоколы, для которых она требуется, чаще всего протоколы электронной почты или группы новостей. Так как UTF-7 не является особенно безопасным или надежным, а большинство современных систем допускают 8-разрядные кодировки, UTF-8 обычно следует использовать вместо UTF-7.

Примечание

UTF7Encoding не обеспечивает обнаружение ошибок. По соображениям безопасности приложение должно использовать UTF8Encoding, UnicodeEncodingили UTF32Encoding и включить обнаружение ошибок.

Дополнительные сведения о UTF и других кодировках, поддерживаемых System.Text, см. в разделе Кодировка символов в платформа .NET Framework.

GetByteCountМетод определяет, сколько байт приводит к кодированию набора символов Юникода, и GetBytes метод выполняет фактическую кодировку.

Аналогичным образом метод определяет, GetCharCount сколько символов приводит к декодированию последовательности байтов, а GetChars методы и GetString выполняют фактическое декодирование.

UTF7Encoding соответствует кодовой странице Windows 65000.

Примечание

Состояние объекта в кодировке UTF-7 не сохраняется, если объект сериализуется и десериализуется с использованием разных версий платформа .NET Framework.

Конструкторы

UTF7Encoding()
Устаревшие..

Инициализирует новый экземпляр класса UTF7Encoding.

UTF7Encoding(Boolean)
Устаревшие..

Инициализирует новый экземпляр класса UTF7Encoding. Параметр указывает, разрешены ли дополнительные символы.

Свойства

BodyName

При переопределении в производном классе получает имя текущей кодировки, которое может использоваться с тегами текста сообщения почтового агента.

(Унаследовано от Encoding)
CodePage

При переопределении в производном классе получает идентификатор кодовой страницы текущего объекта Encoding.

(Унаследовано от Encoding)
DecoderFallback

Возвращает или задает объект DecoderFallback для текущего объекта Encoding.

(Унаследовано от Encoding)
EncoderFallback

Возвращает или задает объект EncoderFallback для текущего объекта Encoding.

(Унаследовано от Encoding)
EncodingName

При переопределении в производном классе получает описание текущей кодировки, которое может быть прочитано пользователем.

(Унаследовано от Encoding)
HeaderName

При переопределении в производном классе получает имя текущей кодировки, которое может использоваться с тегами заголовка сообщения почтового агента.

(Унаследовано от Encoding)
IsBrowserDisplay

При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами браузера для отображения содержимого.

(Унаследовано от Encoding)
IsBrowserSave

При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами браузера для сохранения содержимого.

(Унаследовано от Encoding)
IsMailNewsDisplay

При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами электронной почты и новостей для отображения содержимого.

(Унаследовано от Encoding)
IsMailNewsSave

При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами электронной почты и новостей для сохранения содержимого.

(Унаследовано от Encoding)
IsReadOnly

При переопределении в производном классе получает значение, указывающее, является ли текущая кодировка доступной только для чтения.

(Унаследовано от Encoding)
IsSingleByte

При переопределении в производном классе получает значение, указывающее, используются ли в текущей кодировке однобайтовые кодовые точки.

(Унаследовано от Encoding)
Preamble

При переопределении в производном классе возвращает диапазон, содержащий последовательность байтов, задающую используемую кодировку.

(Унаследовано от Encoding)
WebName

При переопределении в производном классе получает для текущей кодировки имя, зарегистрированное в IANA (Internet Assigned Numbers Authority).

(Унаследовано от Encoding)
WindowsCodePage

При переопределении в производном классе получает кодовую страницу операционной системы Windows, наиболее точно соответствующую текущей кодировке.

(Унаследовано от Encoding)

Методы

Clone()

При переопределении в производном классе создается неполная копия текущего объекта Encoding.

(Унаследовано от Encoding)
Equals(Object)

Возвращает значение, позволяющее определить, равен ли указанный объект текущему объекту UTF7Encoding.

Equals(Object)

Определяет, равен ли указанный объект Object текущему экземпляру.

(Унаследовано от Encoding)
GetByteCount(Char*, Int32)

Вычисляет число байтов, полученных при кодировании набора символов начиная с заданного указателя символа.

GetByteCount(Char*, Int32)

При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов, начиная с заданного указателя символа.

(Унаследовано от Encoding)
GetByteCount(Char[])

При переопределении в производном классе вычисляет количество байтов, полученных при кодировании всех символов из заданного массива символов.

(Унаследовано от Encoding)
GetByteCount(Char[], Int32, Int32)

Вычисляет число байтов, полученных при кодировании набора символов из указанного массива символов.

GetByteCount(ReadOnlySpan<Char>)

При переопределении в производном классе вычисляет количество байтов, полученных при кодировании символов из заданного диапазона символов.

(Унаследовано от Encoding)
GetByteCount(String)

Вычисляет количество байтов, полученных при кодировании символов в указанном объекте String.

GetByteCount(String)

При переопределении в производном классе вычисляет число байтов, полученных при кодировании символов в заданной строке.

(Унаследовано от Encoding)
GetByteCount(String, Int32, Int32)

При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов из указанной строки.

(Унаследовано от Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Кодирует набор символов, начало которого задается указателем символа, в последовательность байтов, которые сохраняются начиная с заданного указателя байта.

GetBytes(Char*, Int32, Byte*, Int32)

При переопределении в производном классе кодирует набор символов, начало которого задается указателем символа, в последовательность байтов, которые сохраняются, начиная с заданного указателя байта.

(Унаследовано от Encoding)
GetBytes(Char[])

При переопределении в производном классе кодирует все символы из указанного массива символов в последовательность байтов.

(Унаследовано от Encoding)
GetBytes(Char[], Int32, Int32)

При переопределении в производном классе кодирует набор символов из указанного массива символов в последовательность байтов.

(Унаследовано от Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Кодирует набор символов из заданного массива символов в указанный массив байтов.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

При переопределении в производном классе кодирует в диапазон байтов набор символов из указанного диапазона только для чтения.

(Унаследовано от Encoding)
GetBytes(String)

При переопределении в производном классе кодирует все символы заданной строки в последовательность байтов.

(Унаследовано от Encoding)
GetBytes(String, Int32, Int32)

При переопределении в производном классе кодирует в массив байтов количество символов, заданных count в указанной строке, начиная с указанного index.

(Унаследовано от Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Кодирует набор символов из заданного объекта String в указанный массив байтов.

GetBytes(String, Int32, Int32, Byte[], Int32)

При переопределении в производном классе кодирует набор символов из заданной строки в заданный массив байтов.

(Унаследовано от Encoding)
GetCharCount(Byte*, Int32)

Вычисляет количество символов, полученных при декодировании последовательности байтов начиная с заданного указателя байта.

GetCharCount(Byte*, Int32)

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов, начало которой задается указателем байтов.

(Унаследовано от Encoding)
GetCharCount(Byte[])

При переопределении в производном классе вычисляет количество символов, полученных при декодировании всех байтов из заданного массива байтов.

(Унаследовано от Encoding)
GetCharCount(Byte[], Int32, Int32)

Вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов.

GetCharCount(ReadOnlySpan<Byte>)

При переопределении в производном классе вычисляет количество символов, полученных при декодировании предоставленного диапазона байтов только для чтения.

(Унаследовано от Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Декодирует последовательность байтов, начало которой задается указателем байта, в набор символов, которые сохраняются начиная с заданного указателя символа.

GetChars(Byte*, Int32, Char*, Int32)

При переопределении в производном классе декодирует последовательность байтов, которая начинается с заданного указателя байта, в набор символов, которые сохраняются, начиная с заданного указателя символа.

(Унаследовано от Encoding)
GetChars(Byte[])

При переопределении в производном классе декодирует все байты из указанного массива байтов в набор символов.

(Унаследовано от Encoding)
GetChars(Byte[], Int32, Int32)

При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в набор символов.

(Унаследовано от Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Декодирует последовательность байтов из заданного массива байтов в указанный массив символов.

GetChars(ReadOnlySpan<Byte>, Span<Char>)

При переопределении в производном классе декодирует все байты из диапазона байтов только для чтения в диапазон символов.

(Унаследовано от Encoding)
GetDecoder()

Получает средство декодирования, преобразующее последовательность байтов в кодировке UTF-7 в последовательность символов Юникода.

GetEncoder()

Получает средство кодирования, преобразующее последовательность символов Юникода в последовательность байтов в кодировке UTF-7.

GetHashCode()

Возвращает хэш-код для текущего объекта UTF7Encoding.

GetHashCode()

Возвращает хэш-код текущего экземпляра.

(Унаследовано от Encoding)
GetMaxByteCount(Int32)

Вычисляет максимальное количество байтов, полученных при кодировании заданного числа символов.

GetMaxCharCount(Int32)

Вычисляет максимальное количество символов, полученных при декодировании заданного числа байтов.

GetPreamble()

При переопределении в производном классе возвращает последовательность байтов, задающую используемую кодировку.

(Унаследовано от Encoding)
GetString(Byte*, Int32)

При переопределении в производном классе декодирует указанное количество байтов начиная с указанного адреса в строку.

(Унаследовано от Encoding)
GetString(Byte[])

При переопределении в производном классе декодирует все байты из указанного массива байтов в строку.

(Унаследовано от Encoding)
GetString(Byte[], Int32, Int32)

Декодирует диапазон байтов из массива байтов в строку.

GetString(Byte[], Int32, Int32)

При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в строку.

(Унаследовано от Encoding)
GetString(ReadOnlySpan<Byte>)

При переопределении в производном классе декодирует все байты из указанного диапазона байтов в строку.

(Унаследовано от Encoding)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsAlwaysNormalized()

Получает значение, которое указывает, является ли текущая кодировка всегда нормализованной с использованием формы нормализации по умолчанию.

(Унаследовано от Encoding)
IsAlwaysNormalized(NormalizationForm)

При переопределении в производном классе получает значение, которое указывает, является ли текущая кодировка всегда нормализованной с использованием заданной по умолчанию формы нормализации.

(Унаследовано от Encoding)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Кодирует в диапазон байтов набор символов из указанного диапазона только для чтения, если целевой объект достаточно велик.

(Унаследовано от Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Декодирует в диапазон символов набор байтов из указанного диапазона только для чтения, если назначение достаточно велико.

(Унаследовано от Encoding)

Методы расширения

GetBytes(Encoding, ReadOnlySequence<Char>)

Кодирует указанный объект ReadOnlySequence<T> в массив Byte, используя указанную кодировку Encoding.

GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>)

Декодирует указанный объект ReadOnlySequence<T> в byte с использованием указанной кодировки Encoding и записывает результат в writer.

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

Кодирует указанный объект ReadOnlySequence<T> в byte с использованием указанной кодировки Encoding и выводит результат в bytes.

GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>)

Кодирует указанный объект ReadOnlySpan<T> в byte с использованием указанной кодировки Encoding и записывает результат в writer.

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

Декодирует указанный объект ReadOnlySequence<T> в char с использованием указанной кодировки Encoding и записывает результат в writer.

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

Декодирует указанный объект ReadOnlySequence<T> в char с использованием указанной кодировки Encoding и выводит результат в chars.

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

Декодирует указанный объект ReadOnlySpan<T> в char с использованием указанной кодировки Encoding и записывает результат в writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Декодирует указанный объект ReadOnlySequence<T> в String, используя указанную кодировку Encoding.

Применяется к

См. также раздел