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


Encoding Класс

Определение

Представляет кодировку символов.

public ref class Encoding abstract
public ref class Encoding abstract : ICloneable
public abstract class Encoding
public abstract class Encoding : ICloneable
[System.Serializable]
public abstract class Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Encoding : ICloneable
type Encoding = class
type Encoding = class
    interface ICloneable
[<System.Serializable>]
type Encoding = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Encoding = class
    interface ICloneable
Public MustInherit Class Encoding
Public MustInherit Class Encoding
Implements ICloneable
Наследование
Encoding
Производный
Атрибуты
Реализации

Примеры

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

Примечание

byte[]Массив является единственным типом в этом примере, который содержит закодированные данные. .NET Char и String типы представляют собой Юникод, поэтому GetChars вызов декодирует данные обратно в Юникод.

using namespace System;
using namespace System::Text;

int main()
{
   String^ unicodeString = "This string contains the unicode character Pi (\u03a0)";
   
   // Create two different encodings.
   Encoding^ ascii = Encoding::ASCII;
   Encoding^ unicode = Encoding::Unicode;
   
   // Convert the string into a byte array.
   array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString );
   
   // Perform the conversion from one encoding to the other.
   array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
   
   // Convert the new Byte into[] a char and[] then into a string.
   array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
   ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
   String^ asciiString = gcnew String( asciiChars );
   
   // Display the strings created before and after the conversion.
   Console::WriteLine( "Original String*: {0}", unicodeString );
   Console::WriteLine( "Ascii converted String*: {0}", asciiString );
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
using System;
using System.Text;

class Example
{
   static void Main()
   {
      string unicodeString = "This string contains the unicode character Pi (\u03a0)";

      // Create two different encodings.
      Encoding ascii = Encoding.ASCII;
      Encoding unicode = Encoding.Unicode;

      // Convert the string into a byte array.
      byte[] unicodeBytes = unicode.GetBytes(unicodeString);

      // Perform the conversion from one encoding to the other.
      byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
         
      // Convert the new byte[] into a char[] and then into a string.
      char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
      string asciiString = new string(asciiChars);

      // Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString);
      Console.WriteLine("Ascii converted string: {0}", asciiString);
   }
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
Imports System.Text

Class Example
   Shared Sub Main()
      Dim unicodeString As String = "This string contains the unicode character Pi (" & ChrW(&H03A0) & ")"

      ' Create two different encodings.
      Dim ascii As Encoding = Encoding.ASCII
      Dim unicode As Encoding = Encoding.Unicode

      ' Convert the string into a byte array.
      Dim unicodeBytes As Byte() = unicode.GetBytes(unicodeString)

      ' Perform the conversion from one encoding to the other.
      Dim asciiBytes As Byte() = Encoding.Convert(unicode, ascii, unicodeBytes)

      ' Convert the new byte array into a char array and then into a string.
      Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) As Char
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
      Dim asciiString As New String(asciiChars)

      ' Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString)
      Console.WriteLine("Ascii converted string: {0}", asciiString)
   End Sub
End Class
' The example displays the following output:
'    Original string: This string contains the unicode character Pi (Π)
'    Ascii converted string: This string contains the unicode character Pi (?)

Комментарии

Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для кодирования.

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

Encoding()

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

Encoding(Int32)

Инициализирует новый экземпляр класса Encoding, соответствующий заданной кодовой странице.

Encoding(Int32, EncoderFallback, DecoderFallback)

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

Свойства

ASCII

Получает кодировку для набора символов ASCII (7-разрядных).

BigEndianUnicode

Получает кодировку для формата UTF-16 с обратным порядком байтов.

BodyName

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

CodePage

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

DecoderFallback

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

Default

Возвращает кодировку по умолчанию для данной реализации .NET.

EncoderFallback

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

EncodingName

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

HeaderName

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

IsBrowserDisplay

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

IsBrowserSave

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

IsMailNewsDisplay

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

IsMailNewsSave

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

IsReadOnly

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

IsSingleByte

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

Latin1

Возвращает кодировку для набора символов Latin1 (ISO-8859-1).

Preamble

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

Unicode

Получает кодировку для формата UTF-16 с прямым порядком байтов.

UTF32

Получает кодировку для формата UTF-32 с прямым порядком байтов.

UTF7
Устаревшие..

Получает кодировку для формата UTF-7.

UTF8

Получает кодировку для формата UTF-8.

WebName

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

WindowsCodePage

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

Методы

Clone()

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

Convert(Encoding, Encoding, Byte[])

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

Convert(Encoding, Encoding, Byte[], Int32, Int32)

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

CreateTranscodingStream(Stream, Encoding, Encoding, Boolean)

Создает Stream, который служит для перекодирования данных между внутренним Encoding и внешним Encoding, как и в случае с Convert(Encoding, Encoding, Byte[]).

Equals(Object)

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

GetByteCount(Char*, Int32)

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

GetByteCount(Char[])

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

GetByteCount(Char[], Int32, Int32)

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

GetByteCount(ReadOnlySpan<Char>)

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

GetByteCount(String)

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

GetByteCount(String, Int32, Int32)

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

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

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

GetBytes(Char[])

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

GetBytes(Char[], Int32, Int32)

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

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

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

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

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

GetBytes(String)

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

GetBytes(String, Int32, Int32)

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

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

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

GetCharCount(Byte*, Int32)

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

GetCharCount(Byte[])

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

GetCharCount(Byte[], Int32, Int32)

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

GetCharCount(ReadOnlySpan<Byte>)

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

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

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

GetChars(Byte[])

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

GetChars(Byte[], Int32, Int32)

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

GetChars(Byte[], Int32, Int32, Char[], Int32)

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

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

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

GetDecoder()

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

GetEncoder()

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

GetEncoding(Int32)

Возвращает кодировку, связанную с указанным идентификатором кодовой страницы.

GetEncoding(Int32, EncoderFallback, DecoderFallback)

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

GetEncoding(String)

Возвращает кодировку, связанную с указанным именем кодовой страницы.

GetEncoding(String, EncoderFallback, DecoderFallback)

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

GetEncodings()

Возвращает массив, содержащий все кодировки.

GetHashCode()

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

GetMaxByteCount(Int32)

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

GetMaxCharCount(Int32)

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

GetPreamble()

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

GetString(Byte*, Int32)

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

GetString(Byte[])

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

GetString(Byte[], Int32, Int32)

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

GetString(ReadOnlySpan<Byte>)

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

GetType()

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

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

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

IsAlwaysNormalized(NormalizationForm)

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

MemberwiseClone()

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

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

Регистрирует поставщик кодировки.

ToString()

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

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

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

TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

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

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

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.

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

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