Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

Encoding - класс

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

Пространство имен:  System.Text
Сборка:  mscorlib (в mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Encoding : ICloneable

Тип Encoding предоставляет следующие члены.

  ИмяОписание
Защищенный методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEncoding()Инициализирует новый экземпляр класса Encoding.
Защищенный методПоддерживается платформой XNA FrameworkEncoding(Int32)Инициализирует новый экземпляр класса Encoding, соответствующий заданной кодовой странице.
В начало страницы

  ИмяОписание
Открытое свойствоСтатический членПоддерживается платформой XNA FrameworkASCIIПолучает кодировку для набора символов ASCII (7-разрядных).
Открытое свойствоСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsBigEndianUnicodeПолучает кодировку для формата UTF-16 с обратным порядком байтов.
Открытое свойствоBodyNameПри переопределении в производном классе получает имя текущей кодировки, которое может использоваться с тегами текста сообщения почтового агента.
Открытое свойствоПоддерживается платформой XNA FrameworkCodePageПри переопределении в производном классе получает идентификатор кодовой страницы текущего объекта Encoding.
Открытое свойствоDecoderFallbackВозвращает или задает объект DecoderFallback для текущего объекта Encoding.
Открытое свойствоСтатический членПоддерживается платформой XNA FrameworkDefaultПолучает кодировку для текущей кодовой страницы ANSI операционной системы.
Открытое свойствоEncoderFallbackВозвращает или задает объект EncoderFallback для текущего объекта Encoding.
Открытое свойствоEncodingNameПри переопределении в производном классе получает описание текущей кодировки, которое может быть прочитано пользователем.
Открытое свойствоHeaderNameПри переопределении в производном классе получает имя текущей кодировки, которое может использоваться с тегами заголовка сообщения почтового агента.
Открытое свойствоIsBrowserDisplayПри переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами браузера для отображения содержимого.
Открытое свойствоIsBrowserSaveПри переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами браузера для сохранения содержимого.
Открытое свойствоIsMailNewsDisplayПри переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами электронной почты и новостей для отображения содержимого.
Открытое свойствоIsMailNewsSaveПри переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами электронной почты и новостей для сохранения содержимого.
Открытое свойствоIsReadOnlyПри переопределении в производном классе получает значение, указывающее, является ли текущая кодировка доступной только для чтения.
Открытое свойствоIsSingleByteПри переопределении в производном классе получает значение, указывающее, используются ли в текущей кодировке однобайтовые кодовые точки.
Открытое свойствоСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsUnicodeПолучает кодировку для формата UTF-16 с прямым порядком байтов.
Открытое свойствоСтатический членUTF32Получает кодировку для формата UTF-32 с прямым порядком байтов.
Открытое свойствоСтатический членПоддерживается платформой XNA FrameworkUTF7Получает кодировку для формата UTF-7.
Открытое свойствоСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsUTF8Получает кодировку для формата UTF-8.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsWebNameПри переопределении в производном классе получает для текущей кодировки имя, зарегистрированное в IANA (Internet Assigned Numbers Authority).
Открытое свойствоWindowsCodePageПри переопределении в производном классе получает кодовую страницу операционной системы Windows, наиболее точно соответствующую текущей кодировке.
В начало страницы

  ИмяОписание
Открытый методПоддерживается платформой XNA FrameworkCloneПри переопределении в производном классе создается неполная копия текущего объекта Encoding.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConvert(Encoding, Encoding, Byte[])Преобразует весь массив байтов из одной кодировки в другую.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConvert(Encoding, Encoding, Byte[], Int32, Int32)Преобразует диапазон байтов в массиве байтов из одной кодировки в другую.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEqualsОпределяет, равен ли заданный объект Object текущему экземпляру. (Переопределяет Object.Equals(Object).)
Защищенный методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsFinalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции по очистке перед тем, как объект будет утилизирован сборщиком мусора. (Унаследовано от Object.)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetByteCount(Char[])При переопределении в производном классе вычисляет количество байтов, полученных при кодировании всех символов из заданного массива символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetByteCount(String)При переопределении в производном классе вычисляет число байтов, полученных при кодировании символов в заданной строке.
Открытый методПоддерживается в Переносимая библиотека классовGetByteCount(Char*, Int32)При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов, начиная с заданного указателя символа.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetByteCount(Char[], Int32, Int32)При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов из указанного массива символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetBytes(Char[])При переопределении в производном классе кодирует все символы из указанного массива символов в последовательность байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetBytes(String)При переопределении в производном классе кодирует все символы заданной строки в последовательность байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetBytes(Char[], Int32, Int32)При переопределении в производном классе кодирует набор символов из указанного массива символов в последовательность байтов.
Открытый методПоддерживается в Переносимая библиотека классовGetBytes(Char*, Int32, Byte*, Int32)При переопределении в производном классе кодирует набор символов, начало которого задается указателем символа, в последовательность байтов, которые сохраняются, начиная с заданного указателя байта.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetBytes(Char[], Int32, Int32, Byte[], Int32)При переопределении в производном классе кодирует набор символов из указанного массива символов в указанный массив байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetBytes(String, Int32, Int32, Byte[], Int32)При переопределении в производном классе кодирует набор символов из заданной строки в заданный массив байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetCharCount(Byte[])При переопределении в производном классе вычисляет количество символов, полученных при декодировании всех байтов из заданного массива байтов.
Открытый методПоддерживается в Переносимая библиотека классовGetCharCount(Byte*, Int32)При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов, начало которой задается указателем байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetCharCount(Byte[], Int32, Int32)При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetChars(Byte[])При переопределении в производном классе декодирует все байты из указанного массива байтов в набор символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetChars(Byte[], Int32, Int32)При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в набор символов.
Открытый методПоддерживается в Переносимая библиотека классовGetChars(Byte*, Int32, Char*, Int32)При переопределении в производном классе декодирует последовательность байтов, которая начинается с заданного указателя байта, в набор символов, которые сохраняются, начиная с заданного указателя символа.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetChars(Byte[], Int32, Int32, Char[], Int32)При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в указанный массив символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetDecoderПри переопределении в производном классе получает декодер, который преобразует последовательность байтов в последовательность символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetEncoderПри переопределении в производном классе получает кодировщик, который преобразует последовательность символов Юникода в закодированную последовательность байтов.
Открытый методСтатический членПоддерживается платформой XNA FrameworkGetEncoding(Int32)Возвращает кодировку, связанную с указанным идентификатором кодовой страницы.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetEncoding(String)Возвращает кодировку, связанную с указанным именем кодовой страницы.
Открытый методСтатический членGetEncoding(Int32, EncoderFallback, DecoderFallback)Возвращает кодировку, связанную с указанным идентификатором кодовой страницы. С помощью параметров задается обработчик ошибок для символов, которые не удается закодировать, и последовательностей байтов, которые не удается декодировать.
Открытый методСтатический членGetEncoding(String, EncoderFallback, DecoderFallback)Возвращает кодировку, связанную с указанным именем кодовой страницы. С помощью параметров задается обработчик ошибок для символов, которые не удается закодировать, и последовательностей байтов, которые не удается декодировать.
Открытый методСтатический членGetEncodingsВозвращает массив, содержащий все кодировки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetHashCodeВозвращает хэш-код текущего экземпляра. (Переопределяет Object.GetHashCode().)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetMaxByteCountПри переопределении в производном классе вычисляет максимальное количество байтов, полученных при кодировании заданного количества символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetMaxCharCountПри переопределении в производном классе вычисляет максимальное количество символов, полученных при декодировании заданного количества байтов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetPreambleПри переопределении в производном классе возвращает последовательность байтов, задающую используемую кодировку.
Открытый методGetString(Byte[])При переопределении в производном классе декодирует все байты из указанного массива байтов в строку.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetString(Byte[], Int32, Int32)При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в строку.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetType Возвращает объект класса Type для текущего экземпляра. (Унаследовано от Object.)
Открытый методIsAlwaysNormalized()Получает значение, которое указывает, является ли текущая кодировка всегда нормализованной с использованием формы нормализации по умолчанию.
Открытый методIsAlwaysNormalized(NormalizationForm)При переопределении в производном классе получает значение, которое указывает, является ли текущая кодировка всегда нормализованной с использованием заданной по умолчанию формы нормализации.
Защищенный методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsMemberwiseClone Создает "поверхностную" копию текущего объекта. (Унаследовано от Object.)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToString Возвращает строковое представление текущего объекта.
(Унаследовано от Object.)
В начало страницы

Кодирование — это процесс преобразования набора символов Юникода в последовательность байтов. Декодирование, наоборот, представляет собой процесс преобразования последовательности закодированных байтов в набор символов Юникода. Сведения о форматах UTF и других кодировках, поддерживаемых Encoding, см. в разделе Кодировки в .NET Framework.

Обратите внимание, что класс Encoding предназначен для работы с символами Юникода вместо произвольных двоичных данных, таких как массивы байтов. Если в приложении требуется закодировать произвольные двоичные данные в текст, следует использовать такой протокол, как uuencode, который реализуется такими методами, как Convert.ToBase64CharArray.

Платформа .NET Framework предоставляет следующие реализации класса Encoding для обеспечения поддержки текущих кодировок Юникода и других кодировок:

  • ASCIIEncoding кодирует символы Юникода как отдельные 7-разрядные ASCII-символы. Данная кодировка поддерживает только значения символов между U+0000 и U+007F. Кодовая страница 20127. Эта кодировка доступна также через свойство ASCII.

  • UTF7Encoding кодирует символы Юникода с использованием кодировки UTF-7. Данная кодировка поддерживает все значения символов Юникода. Кодовая страница 65000. Эта кодировка доступна также через свойство UTF7.

  • UTF8Encoding кодирует символы Юникода с использованием кодировки UTF-8. Данная кодировка поддерживает все значения символов Юникода. Кодовая страница 65001. Эта кодировка доступна также через свойство UTF8.

  • UnicodeEncoding кодирует символы Юникода с использованием кодировки UTF-16. Поддерживается как прямой порядок байтов, так и обратный порядок байтов. Эта кодировка доступна также через свойства Unicode и BigEndianUnicode.

  • UTF32Encoding кодирует символы Юникода с использованием кодировки UTF-32. Поддерживается как прямой порядок байтов (кодовая страница 12000), так и обратный порядок байтов (кодовая страница 12001). Эта кодировка доступна также через свойство UTF32.

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

Используется метод GetEncoding для доступа к другим кодирования. Можно вызвать метод GetEncodings для получения списка всех кодирований.

В следующей таблице перечислены поддерживаемые кодирования платформы .NET Framework. Она содержит номер кодовой страницы каждого кодирования вместе с значениями свойств EncodingInfo.Name и EncodingInfo.DisplayName кодирования. . Звездочка в последнем столбце указывает на то, что кодовая страница поддерживается спецификацией .NET Framework независимо от используемой платформы. Обратите внимание, что кодовые страницы, свойством EncodingInfo.Name соответствует стандарту международному не обязательно соответствуют полностью с этим стандартным.

Кодовая страница

Имя

Отображаемое имя

37

IBM037

IBM EBCDIC (США и Канада)

437

IBM437

OEM - США

500

IBM500

IBM EBCDIC (международная)

708

ASMO-708

Арабская (ASMO 708)

720

DOS-720

Арабская (DOS)

737

ibm737

Греческая (DOS)

775

ibm775

Балтийская (DOS)

850

ibm850

Западноевропейская (DOS)

852

ibm852

Центральноевропейская (DOS)

855

IBM855

OEM - кириллица

857

ibm857

Турецкая (DOS)

858

IBM00858

OEM - многоязычная латиница 1

860

IBM860

Португальская (DOS)

861

ibm861

Исландская (DOS)

862

DOS-862

Иврит (DOS)

863

IBM863

Французская канадская (DOS)

864

IBM864

Арабская (864)

865

IBM865

Скандинавская (DOS)

866

cp866

Кириллица (DOS)

869

ibm869

Греческая, современная (DOS)

870

IBM870

IBM EBCDIC (многоязычная латиница-2)

874

windows-874

Тайская (Windows)

875

cp875

IBM EBCDIC (греческая современная)

932

shift_jis

Японская (Shift-JIS)

936

gb2312

Китайская, упрощенное письмо (GB2312)

*

949

ks_c_5601-1987

Корейский

950

big5

Китайская, традиционное письмо (Big5)

1026

IBM1026

IBM EBCDIC (турецкая латиница-5)

1047

IBM01047

IBM Латиница-1

1140

IBM01140

IBM EBCDIC (США-Канада-евро)

1141

IBM01141

IBM EBCDIC (Германия-евро)

1142

IBM01142

IBM EBCDIC (Дания-Норвегия-евро)

1143

IBM01143

IBM EBCDIC (Финляндия-Швеция-евро)

1144

IBM01144

IBM EBCDIC (Италия-евро)

1145

IBM01145

IBM EBCDIC (Испания-евро)

1146

IBM01146

IBM EBCDIC (Великобритания-евро)

1147

IBM01147

IBM EBCDIC (Франция-евро)

1148

IBM01148

IBM EBCDIC (международная-евро)

1149

IBM01149

IBM EBCDIC (исландская-евро)

1200

utf-16

Unicode

*

1201

unicodeFFFE

Юникод (обратный порядок байтов)

*

1250

windows-1250

Центральноевропейская (Windows)

1251

windows-1251

Кириллица (Windows)

1252

Windows-1252

Западноевропейская (Windows)

*

1253

windows-1253

Греческая (Windows)

1254

windows-1254

Турецкая (Windows)

1255

windows-1255

Иврит (Windows)

1256

windows-1256

Арабская (Windows)

1257

windows-1257

Балтийская (Windows)

1258

windows-1258

Вьетнамская (Windows)

1361

Johab

Корейская (джохаб)

10000

macintosh

Западноевропейская (Mac)

10001

x-mac-japanese

Японская (Mac)

10002

x-mac-chinesetrad

Китайская, традиционное письмо (Mac)

10003

x-mac-korean

Корейская (Mac)

*

10004

x-mac-arabic

Арабская (Mac)

10005

x-mac-hebrew

Иврит (Mac)

10006

x-mac-greek

Греческая (Mac)

10007

x-mac-cyrillic

Кириллица (Mac)

10008

x-mac-chinesesimp

Китайская, упрощенное письмо (Mac)

*

10010

x-mac-romanian

Румынская (Mac)

10017

x-mac-ukrainian

Украинская (Mac)

10021

x-mac-thai

Тайская (Mac)

10029

x-mac-ce

Центральноевропейская (Mac)

10079

x-mac-icelandic

Исландская (Mac)

10081

x-mac-turkish

Турецкая (Mac)

10082

x-mac-croatian

Хорватская (Mac)

12000

utf-32

Юникод (UTF-32)

*

12001

utf-32BE

Юникод (UTF-32, обратный порядок байтов)

*

20000

x-Chinese-CNS

Китайская, традиционное письмо (CNS)

20001

x-cp20001

TCA - тайваньская

20002

x-Chinese-Eten

Китайская, традиционное письмо (Eten)

20003

x-cp20003

IBM5550 - тайваньская

20004

x-cp20004

TeleText - тайваньская

20005

x-cp20005

Wang - тайваньская

20105

x-IA5

Западноевропейская (IA5)

20106

x-IA5-German

Немецкая (IA5)

20107

x-IA5-Swedish

Шведская (IA5)

20108

x-IA5-Norwegian

Норвежская (IA5)

20127

us-ascii

US-ASCII

*

20261

x-cp20261

T.61

20269

x-cp20269

ISO-6937

20273

IBM273

IBM EBCDIC (Германия)

20277

IBM277

IBM EBCDIC (Дания-Норвегия)

20278

IBM278

IBM EBCDIC (Финляндия-Швеция)

20280

IBM280

IBM EBCDIC (Италия)

20284

IBM284

IBM EBCDIC (Испания)

20285

IBM285

IBM EBCDIC (Великобритания)

20290

IBM290

IBM EBCDIC (японская, катакана)

20297

IBM297

IBM EBCDIC (Франция)

20420

IBM420

IBM EBCDIC (арабская)

20423

IBM423

IBM EBCDIC (греческая)

20424

IBM424

IBM EBCDIC (Иврит)

20833

x-EBCDIC-KoreanExtended

IBM EBCDIC (корейская расширенная)

20838

IBM-Thai

IBM EBCDIC (тайская)

20866

koi8-r

Кириллица (KOI8-R)

20871

IBM871

IBM EBCDIC (исландская)

20880

IBM880

IBM EBCDIC (кириллица русская)

20905

IBM905

IBM EBCDIC (турецкая)

20924

IBM00924

IBM Латиница-1

20932

EUC-JP

Японская (JIS 0208-1990 и 0212-1990)

20936

x-cp20936

Китайская, упрощенное письмо (GB2312-80)

*

20949

x-cp20949

Корейская Wansung

*

21025

cp1025

IBM EBCDIC (кириллица сербско-болгарская)

21866

koi8-u

Кириллица (KOI8-U)

28591

iso-8859-1

Западноевропейская (ISO)

*

28592

iso-8859-2

Центральноевропейская (ISO)

28593

iso-8859-3

Латиница 3 (ISO)

28594

iso-8859-4

Балтийская (ISO)

28595

iso-8859-5

Кириллица (ISO)

28596

iso-8859-6

Арабская (ISO)

28597

iso-8859-7

Греческая (ISO)

28598

iso-8859-8

Иврит (ISO-Visual)

*

28599

iso-8859-9

Турецкая (ISO)

28603

iso-8859-13

Эстонская (ISO)

28605

iso-8859-15

Латиница 9 (ISO)

29001

x-Europa

Европейская

38598

iso-8859-8-i

Иврит (ISO-Logical)

*

50220

iso-2022-jp

Японская (JIS)

*

50221

csISO2022JP

Японская (однобайтная кана с JIS)

*

50222

iso-2022-jp

Японская (однобайтная кана с JIS - SO/SI)

*

50225

iso-2022-kr

Корейская (ISO)

*

50227

x-cp50227

Китайская, упрощенное письмо (ISO-2022)

*

51932

euc-jp

Японская (EUC)

*

51936

EUC-CN

Китайская, упрощенное письмо (EUC)

*

51949

euc-kr

Корейская (EUC)

*

52936

hz-gb-2312

Китайская, упрощенное письмо (HZ)

*

54936

GB18030

Китайская, упрощенное письмо (GB18030)

*

57002

x-iscii-de

ISCII деванагари

*

57003

x-iscii-be

ISCII бенгальская

*

57004

x-iscii-ta

ISCII тамильская

*

57005

x-iscii-te

ISCII телугу

*

57006

x-iscii-as

ISCII ассамская

*

57007

x-iscii-or

ISCII ория

*

57008

x-iscii-ka

ISCII каннада

*

57009

x-iscii-ma

ISCII малаялам

*

57010

x-iscii-gu

ISCII гуджарати

*

57011

x-iscii-pa

ISCII панджаби

*

65000

utf-7

Юникод (UTF-7)

*

65001

utf-8

Юникод (UTF-8)

*

Если данные, которые требуется преобразовать, доступны только в последовательных блоках (например, данные, считываемые из потока) либо если объем данных так велик, что его необходимо разделить на блоки меньшего размера, в приложении необходимо использовать объект Decoder или Encoder, предоставляемый, соответственно, методом GetDecoder или GetEncoder производного класса.

Кодировщики UTF-16 и UTF-32 могут использовать обратный порядок следования байтов (самый старший байт располагается на первом месте) или прямой порядок следования байтов (на первом месте находится самый младший байт). Например, прописная латинская буква A (U+0041) сериализуется следующим образом (в шестнадцатеричном формате):

  • UTF-16, обратный порядок байтов: 00 41

  • UTF-16, прямой порядок байтов: 41 00

  • UTF-32, обратный порядок байтов: 00 00 00 41

  • UTF-32, прямой порядок байтов: 41 00 00 00

Обычно более эффективно хранить символы Юникода с использованием собственного порядка байтов. Например, на платформах с прямым порядком байтов, таких как компьютеры Intel, лучше использовать прямой порядок байтов.

Метод GetPreamble извлекает массив байтов, включающий метку порядка следования байтов (BOM). Если этот массив байтов присоединен в качестве префикса к закодированному потоку, он позволяет декодеру определить используемый формат кодировки.

Дополнительные сведения о порядке байтов и метке порядка следования байтов см. на домашней странице стандарта Юникод , содержащей информацию об этом стандарте.

Обратите внимание на то, что классы кодирования допускают ошибки:

  • Изменение символа на вопросительный знак "?" без взаимодействия с пользователем.

  • Использование символа с "наилучшим соответствием".

  • Переход к поведению, характерному для приложения, посредством использования классов EncoderFallback и DecoderFallback с символом замены U+FFFD (Юникод).

В приложениях рекомендуется выдавать исключения для всех ошибок потока данных. В приложении либо используется флаг "throwonerror", где это применимо, либо используются классы EncoderExceptionFallback и DecoderExceptionFallback. Использовать резервный вариант с "наилучшим соответствием" обычно не рекомендуется, поскольку он может привести к потере данных или к неразберихе и является более медленным, чем обычная замена символов. Для кодировок ANSI по умолчанию задано поведение, связанное с поиском "наилучшего соответствия".

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

ПримечаниеПримечание

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


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 (?)


.NET Framework

Поддерживается в версиях: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Переносимая библиотека классов

Поддерживается в версии: Переносимая библиотека классов

Приложения .NET для Магазина Windows

Поддерживается в версии: Windows 8

Приложения .NET для Windows Phone

Поддерживается в версиях: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

.NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

Добавления сообщества

Показ:
© 2015 Microsoft