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) |
При переопределении в производном классе кодирует в массив байтов количество символов, заданных |
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> в |
GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
Кодирует указанный объект ReadOnlySequence<T> в |
GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
Кодирует указанный объект ReadOnlySpan<T> в |
GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
Декодирует указанный объект ReadOnlySequence<T> в |
GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
Декодирует указанный объект ReadOnlySequence<T> в |
GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
Декодирует указанный объект ReadOnlySpan<T> в |
GetString(Encoding, ReadOnlySequence<Byte>) |
Декодирует указанный объект ReadOnlySequence<T> в String, используя указанную кодировку Encoding. |