Code Pages Encoding Provider Класс
Определение
Предоставляет доступ к поставщику кодировки для кодовых страниц, которые в противном случае доступны только в .NET Framework для настольных систем. Provides access to an encoding provider for code pages that otherwise are available only in the desktop .NET Framework.
Комментарии
Платформа .NET Framework для Windows Desktop поддерживает большой набор кодировок Юникода и кодовых страниц. The .NET Framework for the Windows desktop supports a large set of Unicode and code page encodings. .NET Core, с другой стороны, поддерживает только следующие кодировки: .NET Core, on the other hand, supports only the following encodings:
ASCII (кодовая страница 20127), возвращаемая Encoding.ASCII свойством. ASCII (code page 20127), which is returned by the Encoding.ASCII property.
ISO-8859-1 (кодовая страница 28591). ISO-8859-1 (code page 28591).
UTF-7 (кодовая страница 65000), возвращаемая Encoding.UTF7 свойством. UTF-7 (code page 65000), which is returned by the Encoding.UTF7 property.
UTF-8 (кодовая страница 65001), возвращаемая Encoding.UTF8 свойством. UTF-8 (code page 65001), which is returned by the Encoding.UTF8 property.
UTF-16 и UTF-16LE (кодовая страница 1200), возвращаемая Encoding.Unicode свойством. UTF-16 and UTF-16LE (code page 1200), which is returned by the Encoding.Unicode property.
UTF-16BE (кодовая страница 1201), экземпляр которой создается путем вызова UnicodeEncoding.UnicodeEncoding конструктора или UnicodeEncoding.UnicodeEncoding со bigEndian значением true . UTF-16BE (code page 1201), which is instantiated by calling the UnicodeEncoding.UnicodeEncoding or UnicodeEncoding.UnicodeEncoding constructor with a bigEndian value of true .
UTF-32 и UTF-32LE (кодовая страница 12000), возвращаемая Encoding.UTF32 свойством. UTF-32 and UTF-32LE (code page 12000), which is returned by the Encoding.UTF32 property.
UTF-32BE (кодовая страница 12001), экземпляр которой создается путем вызова UTF32Encoding конструктора, который имеет bigEndian параметр и предоставляет значение true в вызове метода. UTF-32BE (code page 12001), which is instantiated by calling an UTF32Encoding constructor that has a bigEndian parameter and providing a value of true in the method call.
В отличие от кодовой страницы 20127, кодировки кодовых страниц не поддерживаются. Other than code page 20127, code page encodings are not supported.
CodePagesEncodingProviderКласс расширяет EncodingProvider , чтобы сделать эти кодовые страницы доступными для .NET Core. The CodePagesEncodingProvider class extends EncodingProvider to make these code pages available to .NET Core. Чтобы использовать эти дополнительные кодовые страницы, выполните следующие действия. To use these additional code pages, you do the following:
Добавьте в проект ссылку на сборку System.Text.Encoding.CodePages.dll. Add a reference to the System.Text.Encoding.CodePages.dll assembly to your project.
После EncodingProvider регистрации объекта поддерживаемые им кодировки доступны путем вызова перегрузок Encoding.GetEncoding ; не следует вызывать EncodingProvider.GetEncoding перегрузки. After an EncodingProvider object is registered, the encodings that it supports are available by calling the overloads of Encoding.GetEncoding; you should not call the EncodingProvider.GetEncoding overloads.
Свойства
Возвращает поставщик кодировки для кодовых страниц, поддерживаемых платформой .NET Framework для настольных систем, но не текущей платформой .NET Framework. Gets an encoding provider for code pages supported in the desktop .NET Framework but not in the current .NET Framework platform.
Методы
Определяет, равен ли указанный объект текущему объекту. Determines whether the specified object is equal to the current object.
(Унаследовано от Object)
Возвращает кодировку, связанную с указанным идентификатором кодовой страницы. Returns the encoding associated with the specified code page identifier.
Возвращает кодировку, связанную с указанным идентификатором кодовой страницы. Returns the encoding associated with the specified code page identifier. С помощью параметров задается обработчик ошибок для символов, которые не удается закодировать, и последовательностей байтов, которые не удается декодировать. Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.
(Унаследовано от EncodingProvider)
Возвращает кодировку, связанную с указанным именем кодовой страницы. Returns the encoding associated with the specified code page name.
Возвращает кодировку, связанную с заданным именем. Returns the encoding associated with the specified name. С помощью параметров задается обработчик ошибок для символов, которые не удается закодировать, и последовательностей байтов, которые не удается декодировать. Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.
(Унаследовано от EncodingProvider)
Возвращает массив, содержащий все кодировки, поддерживаемые CodePagesEncodingProvider. Returns an array that contains all the encodings that are supported by the CodePagesEncodingProvider.
Возвращает массив, содержащий все кодировки, поддерживаемые EncodingProvider. Returns an array that contains all the encodings that are supported by the EncodingProvider.
(Унаследовано от EncodingProvider)
Служит хэш-функцией по умолчанию. Serves as the default hash function.
(Унаследовано от Object)
Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.
(Унаследовано от Object)
Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.
(Унаследовано от Object)
Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.
Как из стоки windows-1251 получить строку UTF-8 на C#?
может так попробовать?
как вариант можно попробовать сериализовать в json с помощью специально для этого реализованными инструментами, например: newtonsoft json.
еще у WebClient`а есть свойство Encoding. Можно попробовать разные варианты.
В платформе .NET все строки представлены как UTF-16.
Поэтому нет «строки windows-1251», а есть UTF-16 строка, которая была заполнена символами из источника, в котором символы были сохранены в windows-1251.
Из этого становится виден сценарий:
1. Считать файл байтов, где символы кодируются в windows-1251.
2. Преобразовать в UTF-16
3. Выполнить над строками различные необходимые действия.
4. Сохранить результат с преобразованием в набор байт, где символы представленны как UTF-8.
И пример кода:
1-2. Построчное чтение из файла с windows-1251
4. Помещаем в тело запроса набор байт, где символы в UTF-8
Encoding Класс
Определение
Представляет кодировку символов. Represents a character encoding.
Примеры
В следующем примере строка из одной кодировки преобразуется в другую. The following example converts a string from one encoding to another.
byte[] Массив является единственным типом в этом примере, который содержит закодированные данные. The byte[] array is the only type in this example that contains the encoded data. .NET Char и String типы представляют собой Юникод, поэтому GetChars вызов декодирует данные обратно в Юникод. The .NET Char and String types are themselves Unicode, so the GetChars call decodes the data back to Unicode.
Комментарии
Кодирование — это процесс преобразования набора символов Юникода в последовательность байтов. Encoding is the process of transforming a set of Unicode characters into a sequence of bytes. В отличие от декодирования — это процесс преобразования последовательности закодированных байтов в набор символов Юникода. In contrast, decoding is the process of transforming a sequence of encoded bytes into a set of Unicode characters. Сведения о форматах преобразования Юникода (Утфс) и других кодировках Encoding , поддерживаемых, см. в разделе кодировка символов в .NET. For information about the Unicode Transformation Formats (UTFs) and other encodings supported by Encoding, see Character Encoding in .NET.
Обратите внимание, что Encoding предназначено для работы с символами Юникода вместо произвольных двоичных данных, таких как байтовые массивы. Note that Encoding is intended to operate on Unicode characters instead of arbitrary binary data, such as byte arrays. Если необходимо закодировать произвольные двоичные данные в текст, следует использовать протокол, такой как uuencode, который реализуется такими методами, как Convert.ToBase64CharArray . If you must encode arbitrary binary data into text, you should use a protocol such as uuencode, which is implemented by methods such as Convert.ToBase64CharArray.
.NET предоставляет следующие реализации Encoding класса для поддержки текущих кодировок Юникода и других кодировок: .NET provides the following implementations of the Encoding class to support current Unicode encodings and other encodings:
ASCIIEncodingкодирует символы Юникода как однострочные 7-разрядные символы ASCII. ASCIIEncoding encodes Unicode characters as single 7-bit ASCII characters. Эта кодировка поддерживает только символьные значения в диапазоне от U + 0000 до U + 007F. This encoding only supports character values between U+0000 and U+007F. Кодовая страница 20127. Code page 20127. Также доступно через ASCII свойство. Also available through the ASCII property.
UTF7Encodingкодирует символы Юникода в кодировке UTF-7. UTF7Encoding encodes Unicode characters using the UTF-7 encoding. Эта кодировка поддерживает все значения символов Юникода. This encoding supports all Unicode character values. Кодовая страница 65000. Code page 65000. Также доступно через UTF7 свойство. Also available through the UTF7 property.
UTF8Encodingкодирует символы Юникода в кодировке UTF-8. UTF8Encoding encodes Unicode characters using the UTF-8 encoding. Эта кодировка поддерживает все значения символов Юникода. This encoding supports all Unicode character values. Кодовая страница 65001. Code page 65001. Также доступно через UTF8 свойство. Also available through the UTF8 property.
UnicodeEncodingкодирует символы Юникода в кодировке UTF-16. UnicodeEncoding encodes Unicode characters using the UTF-16 encoding. Поддерживаются как прямой, так и обратный порядок байтов. Both little endian and big endian byte orders are supported. Также доступно через Unicode свойство и BigEndianUnicode . Also available through the Unicode property and the BigEndianUnicode property.
UTF32Encodingкодирует символы Юникода в кодировке UTF-32. UTF32Encoding encodes Unicode characters using the UTF-32 encoding. Поддерживаются как с прямым порядком байтов (кодовая страница 12000), так и с обратным порядком байтов (кодовая страница 12001). Both little endian (code page 12000) and big endian (code page 12001) byte orders are supported. Также доступно через UTF32 свойство. Also available through the UTF32 property.
EncodingКласс в основном предназначен для преобразования между различными кодировками и Юникодом. The Encoding class is primarily intended to convert between different encodings and Unicode. Часто один из производных классов Юникода является правильным выбором для вашего приложения. Often one of the derived Unicode classes is the correct choice for your app.
Используйте GetEncoding метод для получения других кодировок и вызовите GetEncodings метод, чтобы получить список всех кодировок. Use the GetEncoding method to obtain other encodings, and call the GetEncodings method to get a list of all encodings.
Список кодировок List of encodings
В следующей таблице перечислены кодировки, поддерживаемые .NET. The following table lists the encodings supported by .NET. В нем перечислены номера кодовой страницы каждой кодировки и значения свойств кодировки EncodingInfo.Name и EncodingInfo.DisplayName . It lists each encoding’s code page number and the values of the encoding’s EncodingInfo.Name and EncodingInfo.DisplayName properties. Флажок в столбце поддержка .NET Framework, поддержка .NET Core или .NET 5,0 и более поздних версий указывает на то, что кодовая страница поддерживается этой реализацией .NET, независимо от базовой платформы. A check mark in the .NET Framework support, .NET Core support, or .NET 5.0 and later support column indicates that the code page is natively supported by that .NET implementation, regardless of the underlying platform. Для .NET Framework доступность других кодировок, перечисленных в таблице, зависит от операционной системы. For .NET Framework, the availability of other encodings listed in the table depends on the operating system. Для .NET Core и .NET 5,0 и более поздних версий другие кодировки доступны с помощью System.Text.CodePagesEncodingProvider класса или путем наследования от System.Text.EncodingProvider класса. For .NET Core and .NET 5.0 and later, other encodings are available by using the System.Text.CodePagesEncodingProvider class or by deriving from the System.Text.EncodingProvider class.
Кодовые страницы EncodingInfo.Name , свойства которых соответствуют международным стандартам, не обязательно полностью соответствуют этому стандарту. Code pages whose EncodingInfo.Name property corresponds to an international standard do not necessarily comply in full with that standard.
Кодовая страница Code page | Имя Name | Отображаемое имя Display name | Поддержка .NET Framework .NET Framework support | Поддержка .NET Core .NET Core support | Поддержка .NET 5,0 и более поздних версий .NET 5.0 and later support |
---|---|---|---|---|---|
37 37 | IBM037 IBM037 | IBM EBCDIC (США-Канада) IBM EBCDIC (US-Canada) | |||
437 437 | IBM437 IBM437 | OEM США OEM United States | |||
500 500 | IBM500 IBM500 | IBM EBCDIC (Международная) IBM EBCDIC (International) | |||
708 708 | ASMO-708 ASMO-708 | Арабский (ASMO 708) Arabic (ASMO 708) | |||
720 720 | DOS-720 DOS-720 | Арабский (DOS) Arabic (DOS) | |||
737 737 | ibm737 ibm737 | Греческий (DOS) Greek (DOS) | |||
775 775 | ibm775 ibm775 | Балтийская (DOS) Baltic (DOS) | |||
850 850 | ibm850 ibm850 | Западная Европа (DOS) Western European (DOS) | |||
852 852 | ibm852 ibm852 | Центральноевропейская (DOS) Central European (DOS) | |||
855 855 | IBM855 IBM855 | OEM кириллица OEM Cyrillic | |||
857 857 | ibm857 ibm857 | Турецкий (DOS) Turkish (DOS) | |||
858 858 | IBM00858 IBM00858 | OEM многоязычная латиница I OEM Multilingual Latin I | |||
860 860 | IBM860 IBM860 | Португальский (DOS) Portuguese (DOS) | |||
861 861 | ibm861 ibm861 | Исландский (DOS) Icelandic (DOS) | |||
862 862 | DOS-862 DOS-862 | Иврит (DOS) Hebrew (DOS) | |||
863 863 | IBM863 IBM863 | Французская Канада (DOS) French Canadian (DOS) | |||
864 864 | IBM864 IBM864 | Арабский (864) Arabic (864) | |||
865 865 | IBM865 IBM865 | Скандинавский (DOS) Nordic (DOS) | |||
866 866 | cp866 cp866 | Кириллица (DOS) Cyrillic (DOS) | |||
869 869 | ibm869 ibm869 | Греческий, современный (DOS) Greek, Modern (DOS) | |||
870 870 | IBM870 IBM870 | IBM EBCDIC (многоязычная латиница-2) IBM EBCDIC (Multilingual Latin-2) | |||
874 874 | Windows — 874 windows-874 | Тайский (Windows) Thai (Windows) | |||
875 875 | cp875 cp875 | IBM EBCDIC (греческая современная) IBM EBCDIC (Greek Modern) | |||
932 932 | shift_jis shift_jis | Японская (Shift-JIS) Japanese (Shift-JIS) | |||
936 936 | GB2312 gb2312 | Китайская, упрощенное письмо (GB2312) Chinese Simplified (GB2312) | ✓ ✓ | ||
949 949 | ks_c_5601 1987 ks_c_5601-1987 | Корейский Korean | |||
950 950 | традиционн big5 | Китайская традиционная (Big5) Chinese Traditional (Big5) | |||
1026 1026 | IBM1026 IBM1026 | IBM EBCDIC (турецкая латиница-5) IBM EBCDIC (Turkish Latin-5) | |||
1047 1047 | IBM01047 IBM01047 | IBM Latin-1 IBM Latin-1 | |||
1140 1140 | IBM01140 IBM01140 | IBM EBCDIC (США-Канада-евро) IBM EBCDIC (US-Canada-Euro) | |||
1141 1141 | IBM01141 IBM01141 | IBM EBCDIC (Германия-евро) IBM EBCDIC (Germany-Euro) | |||
1142 1142 | IBM01142 IBM01142 | IBM EBCDIC (Дания-Норвегия-евро) IBM EBCDIC (Denmark-Norway-Euro) | |||
1143 1143 | IBM01143 IBM01143 | IBM EBCDIC (Финляндия-Швеция-евро) IBM EBCDIC (Finland-Sweden-Euro) | |||
1144 1144 | IBM01144 IBM01144 | IBM EBCDIC (Италия-Европа) IBM EBCDIC (Italy-Euro) | |||
1145 1145 | IBM01145 IBM01145 | IBM EBCDIC (Испания-евро) IBM EBCDIC (Spain-Euro) | |||
1146 1146 | IBM01146 IBM01146 | IBM EBCDIC (Великобритания-Европа) IBM EBCDIC (UK-Euro) | |||
1147 1147 | IBM01147 IBM01147 | IBM EBCDIC (Франция-евро) IBM EBCDIC (France-Euro) | |||
1148 1148 | IBM01148 IBM01148 | IBM EBCDIC (Международная Европа) IBM EBCDIC (International-Euro) | |||
1149 1149 | IBM01149 IBM01149 | IBM EBCDIC (Исландский-евро) IBM EBCDIC (Icelandic-Euro) | |||
1200 1200 | UTF-16 utf-16 | Юникод Unicode | ✓ ✓ | ✓ ✓ | ✓ ✓ |
1201 1201 | уникодефффе unicodeFFFE | Юникод (с обратным порядком байтов) Unicode (Big endian) | ✓ ✓ | ✓ ✓ | ✓ ✓ |
1250 1250 | Windows — 1250 windows-1250 | Центральная Европа (Windows) Central European (Windows) | |||
1251 1251 | Windows — 1251 windows-1251 | Кириллица (Windows) Cyrillic (Windows) | |||
1252 1252 | Windows-1252 Windows-1252 | Западно-европейская (Windows) Western European (Windows) | ✓ ✓ | ||
1253 1253 | Windows — 1253 windows-1253 | Греческий (Windows) Greek (Windows) | |||
1254 1254 | Windows — 1254 windows-1254 | Турецкий (Windows) Turkish (Windows) | |||
1255 1255 | Windows — 1255 windows-1255 | Иврит (Windows) Hebrew (Windows) | |||
1256 1256 | Windows — 1256 windows-1256 | Арабский (Windows) Arabic (Windows) | |||
1257 1257 | Windows — 1257 windows-1257 | Балтийская (Windows) Baltic (Windows) | |||
1258 1258 | Windows — 1258 windows-1258 | Вьетнамский (Windows) Vietnamese (Windows) | |||
1361 1361 | Johab Johab | Корейский (Johab) Korean (Johab) | |||
10000 10000 | « macintosh | Западная Европа (Mac) Western European (Mac) | |||
10001 10001 | x-Mac-японская x-mac-japanese | Японская (Mac) Japanese (Mac) | |||
10002 10002 | x-Mac-чинесетрад x-mac-chinesetrad | Китайская традиционная (Mac) Chinese Traditional (Mac) | |||
10003 10003 | x-Mac-Корейский x-mac-korean | Корейская (Mac) Korean (Mac) | ✓ ✓ | ||
10004 10004 | x-Mac-Арабская x-mac-arabic | Арабский (Mac) Arabic (Mac) | |||
10005 10005 | x-Mac-иврит x-mac-hebrew | Иврит (Mac) Hebrew (Mac) | |||
10006 10006 | x-Mac-греческая x-mac-greek | Греческий (Mac) Greek (Mac) | |||
10007 10007 | x-Mac-кириллица x-mac-cyrillic | Кириллица (Mac) Cyrillic (Mac) | |||
10008 10008 | x-Mac-чинесесимп x-mac-chinesesimp | Китайская, упрощенное письмо (Mac) Chinese Simplified (Mac) | ✓ ✓ | ||
10010 10010 | x-Mac-румынская x-mac-romanian | Румынский (Mac) Romanian (Mac) | |||
10017 10017 | x-Mac-украинский x-mac-ukrainian | Украинский (Mac) Ukrainian (Mac) | |||
10021 10021 | x-Mac-тайский x-mac-thai | Тайский (Mac) Thai (Mac) | |||
10029 10029 | x-Mac-CE x-mac-ce | Центральноевропейская (Mac) Central European (Mac) | |||
10079 10079 | x-Mac-Исландский x-mac-icelandic | Исландский (Mac) Icelandic (Mac) | |||
10081 10081 | x-Mac-Турецкая x-mac-turkish | Турецкий (Mac) Turkish (Mac) | |||
10082 10082 | x-Mac-Хорватский x-mac-croatian | Хорватский (Mac) Croatian (Mac) | |||
12000 12000 | UTF-32 utf-32 | Юникод (UTF-32) Unicode (UTF-32) | ✓ ✓ | ✓ ✓ | ✓ ✓ |
12001 12001 | UTF-32BE utf-32BE | Юникод (UTF-32 с обратным порядком байтов) Unicode (UTF-32 Big endian) | ✓ ✓ | ✓ ✓ | ✓ ✓ |
20 000 20000 | x-китайский — CNS x-Chinese-CNS | Китайская традиционная (CNS) Chinese Traditional (CNS) | |||
20001 20001 | x — cp20001 x-cp20001 | TCA Тайваньская TCA Taiwan | |||
20002 20002 | x-китайский — Eten x-Chinese-Eten | Китайская традиционная (Eten) Chinese Traditional (Eten) | |||
20003 20003 | x — cp20003 x-cp20003 | IBM5550 Тайвань IBM5550 Taiwan | |||
20004 20004 | x — cp20004 x-cp20004 | Телетекст, Тайвань TeleText Taiwan | |||
20005 20005 | x — cp20005 x-cp20005 | Wang Тайвань Wang Taiwan | |||
20105 20105 | x-IA5 x-IA5 | Западная Европа (IA5) Western European (IA5) | |||
20106 20106 | x-IA5-немецкий x-IA5-German | Немецкий (IA5) German (IA5) | |||
20107 20107 | x-IA5-шведский x-IA5-Swedish | Шведский (IA5) Swedish (IA5) | |||
20108 20108 | x-IA5-Норвежский x-IA5-Norwegian | Норвежский (IA5) Norwegian (IA5) | |||
20127 20127 | US-ASCII us-ascii | ASCII (США) US-ASCII | ✓ ✓ | ✓ ✓ | ✓ ✓ |
20261 20261 | x — cp20261 x-cp20261 | Т. 61 T.61 | |||
20269 20269 | x — cp20269 x-cp20269 | ISO-6937 ISO-6937 | |||
20273 20273 | IBM273 IBM273 | IBM EBCDIC (Германия) IBM EBCDIC (Germany) | |||
20277 20277 | IBM277 IBM277 | IBM EBCDIC (Дания-Норвегия) IBM EBCDIC (Denmark-Norway) | |||
20278 20278 | IBM278 IBM278 | IBM EBCDIC (Финляндия-Швеция) IBM EBCDIC (Finland-Sweden) | |||
20280 20280 | IBM280 IBM280 | IBM EBCDIC (Италия) IBM EBCDIC (Italy) | |||
20284 20284 | IBM284 IBM284 | IBM EBCDIC (Испания) IBM EBCDIC (Spain) | |||
20285 20285 | IBM285 IBM285 | IBM EBCDIC (ВЕЛИКОБРИТАНИЯ) IBM EBCDIC (UK) | |||
20290 20290 | IBM290 IBM290 | IBM EBCDIC (японская катакана) IBM EBCDIC (Japanese katakana) | |||
20297 20297 | IBM297 IBM297 | IBM EBCDIC (Франция) IBM EBCDIC (France) | |||
20420 20420 | IBM420 IBM420 | IBM EBCDIC (Арабская) IBM EBCDIC (Arabic) | |||
20423 20423 | IBM423 IBM423 | IBM EBCDIC (греческая) IBM EBCDIC (Greek) | |||
20424 20424 | IBM424 IBM424 | IBM EBCDIC (иврит) IBM EBCDIC (Hebrew) | |||
20833 20833 | x-EBCDIC-Кореанекстендед x-EBCDIC-KoreanExtended | IBM EBCDIC (Корейская расширенная) IBM EBCDIC (Korean Extended) | |||
20838 20838 | IBM — тайский IBM-Thai | IBM EBCDIC (тайский) IBM EBCDIC (Thai) | |||
20866 20866 | koi8-r koi8-r | Кириллица (KOI8-R) Cyrillic (KOI8-R) | |||
20871 20871 | IBM871 IBM871 | IBM EBCDIC (исландский) IBM EBCDIC (Icelandic) | |||
20880 20880 | IBM880 IBM880 | IBM EBCDIC (кириллица русская) IBM EBCDIC (Cyrillic Russian) | |||
20905 20905 | IBM905 IBM905 | IBM EBCDIC (Турецкая) IBM EBCDIC (Turkish) | |||
20924 20924 | IBM00924 IBM00924 | IBM Latin-1 IBM Latin-1 | |||
20932 20932 | EUC-JP EUC-JP | Японская (JIS 0208-1990 и 0212-1990) Japanese (JIS 0208-1990 and 0212-1990) | |||
20936 20936 | x — cp20936 x-cp20936 | Китайская, упрощенное письмо (GB2312-80) Chinese Simplified (GB2312-80) | ✓ ✓ | ||
20949 20949 | x — cp20949 x-cp20949 | Корейский Wansung Korean Wansung | ✓ ✓ | ||
21025 21025 | cp1025 cp1025 | IBM EBCDIC (кириллица, Сербский — Болгарский) IBM EBCDIC (Cyrillic Serbian-Bulgarian) | |||
21866 21866 | koi8-u koi8-u | Кириллица (KOI8-U) Cyrillic (KOI8-U) | |||
28591 28591 | ISO-8859-1 iso-8859-1 | Западноевропейская (ISO) Western European (ISO) | ✓ ✓ | ✓ ✓ | ✓ ✓ |
28592 28592 | ISO-8859-2 iso-8859-2 | Центральноевропейская (ISO) Central European (ISO) | |||
28593 28593 | ISO-8859-3 iso-8859-3 | Латиница 3 (ISO) Latin 3 (ISO) | |||
28594 28594 | ISO-8859-4 iso-8859-4 | Балтийская (ISO) Baltic (ISO) | |||
28595 28595 | ISO-8859-5 iso-8859-5 | Кириллица (ISO) Cyrillic (ISO) | |||
28596 28596 | ISO-8859-6 iso-8859-6 | Арабский (ISO) Arabic (ISO) | |||
28597 28597 | ISO-8859-7 iso-8859-7 | Греческий (ISO) Greek (ISO) | |||
28598 28598 | ISO-8859-8 iso-8859-8 | Иврит (ISO-Visual) Hebrew (ISO-Visual) | ✓ ✓ | ||
28599 28599 | ISO-8859-9 iso-8859-9 | Турецкий (ISO) Turkish (ISO) | |||
28603 28603 | ISO-8859-13 iso-8859-13 | Эстонский (ISO) Estonian (ISO) | |||
28605 28605 | ISO-8859-15 iso-8859-15 | Латиница 9 (ISO) Latin 9 (ISO) | |||
29001 29001 | x — Европа x-Europa | Европа Europa | |||
38598 38598 | ISO-8859-8-i iso-8859-8-i | Иврит (ISO-Logical) Hebrew (ISO-Logical) | ✓ ✓ | ||
50220 50220 | ISO-2022-JP iso-2022-jp | Японская (JIS) Japanese (JIS) | ✓ ✓ | ||
50221 50221 | csISO2022JP csISO2022JP | Японская (JIS, разрешить 1 байт Кана) Japanese (JIS-Allow 1 byte Kana) | ✓ ✓ | ||
50222 50222 | ISO-2022-JP iso-2022-jp | Японская (JIS — разрешить 1 байт Кана-SO/SI) Japanese (JIS-Allow 1 byte Kana — SO/SI) | ✓ ✓ | ||
50225 50225 | ISO-2022-kr iso-2022-kr | Корейская (ISO) Korean (ISO) | ✓ ✓ | ||
50227 50227 | x — cp50227 x-cp50227 | Китайская, упрощенное письмо (ISO-2022) Chinese Simplified (ISO-2022) | ✓ ✓ | ||
51932 51932 | EUC-JP euc-jp | Японский (EUC) Japanese (EUC) | ✓ ✓ | ||
51936 51936 | EUC-CN EUC-CN | Китайская упрощенная (EUC) Chinese Simplified (EUC) | ✓ ✓ | ||
51949 51949 | euc-kr euc-kr | Корейский (EUC) Korean (EUC) | ✓ ✓ | ||
52936 52936 | Гц-GB-2312 hz-gb-2312 | Китайская, упрощенное письмо (Гц) Chinese Simplified (HZ) | ✓ ✓ | ||
54936 54936 | GB18030 GB18030 | Китайская упрощенная (GB18030) Chinese Simplified (GB18030) | ✓ ✓ | ||
57002 57002 | x-ISCII-de x-iscii-de | ISCII — деванагари ISCII Devanagari | ✓ ✓ | ||
57003 57003 | x-ISCII-составлять x-iscii-be | ISCII Бенгальская ISCII Bengali | ✓ ✓ | ||
57004 57004 | x-ISCII-TA x-iscii-ta | ISCII — тамильский ISCII Tamil | ✓ ✓ | ||
57005 57005 | x-ISCII-TE x-iscii-te | ISCII — телугу ISCII Telugu | ✓ ✓ | ||
57006 57006 | x-ISCII-AS x-iscii-as | ISCII — Ассамская ISCII Assamese | ✓ ✓ | ||
57007 57007 | x-ISCII-или x-iscii-or | ISCII — Ория ISCII Oriya | ✓ ✓ | ||
57008 57008 | x-ISCII-ка x-iscii-ka | ISCII — каннада ISCII Kannada | ✓ ✓ | ||
57009 57009 | x-ISCII-MA x-iscii-ma | ISCII — малаялам ISCII Malayalam | ✓ ✓ | ||
57010 57010 | x-ISCII-gu x-iscii-gu | ISCII — гуджарати ISCII Gujarati | ✓ ✓ | ||
57011 57011 | x-ISCII-PA x-iscii-pa | Панджаби ISCII ISCII Punjabi | ✓ ✓ | ||
65000 65000 | UTF-7 utf-7 | Юникод (UTF-7) Unicode (UTF-7) | ✓ ✓ | ✓ ✓ | |
65001 65001 | utf-8 utf-8 | Юникод (UTF-8) Unicode (UTF-8) | ✓ ✓ | ✓ ✓ | ✓ ✓ |
В следующем примере вызываются GetEncoding(Int32) GetEncoding(String) методы и для получения кодировки кодовой страницы греческого языка (Windows). The following example calls the GetEncoding(Int32) and GetEncoding(String) methods to get the Greek (Windows) code page encoding. Он сравнивает объекты, Encoding возвращаемые вызовами методов, чтобы показать, что они равны, а затем Maps отображает кодовую точку Юникода и соответствующее значение кодовой страницы для каждого символа в греческом алфавите. It compares the Encoding objects returned by the method calls to show that they are equal, and then maps displays the Unicode code point and the corresponding code page value for each character in the Greek alphabet.
Если данные для преобразования доступны только в последовательных блоках (например, чтение данных из потока) или если объем данных настолько велик, что необходимо разделить на меньшие блоки, следует использовать Decoder или, Encoder предоставленный GetDecoder методом или GetEncoder методом, соответственно, для производного класса. If the data to be converted is available only in sequential blocks (such as data read from a stream) or if the amount of data is so large that it needs to be divided into smaller blocks, you should use the Decoder or the Encoder provided by the GetDecoder method or the GetEncoder method, respectively, of a derived class.
Кодировщики UTF-16 и UTF-32 могут использовать обратный порядок байтов (самый значащий байт) или обратный порядок байтов (минимальный значащий байт). The UTF-16 and the UTF-32 encoders can use the big endian byte order (most significant byte first) or the little endian byte order (least significant byte first). Например, Латинская прописная буква A (U + 0041) сериализуется следующим образом (в шестнадцатеричном формате): For example, the Latin Capital Letter A (U+0041) is serialized as follows (in hexadecimal):
Порядковый номер UTF-16 с обратным порядком байтов: 00 41 UTF-16 big endian byte order: 00 41
UTF-16 с прямым порядком байтов: 41 00 UTF-16 little endian byte order: 41 00
UTF-32. обратный порядок байтов: 00 00 00 41 UTF-32 big endian byte order: 00 00 00 41
UTF-32, прямой порядок байтов: 41 00 00 00 UTF-32 little endian byte order: 41 00 00 00
Обычно более эффективно хранить символы Юникода с помощью собственного порядка байтов. It is generally more efficient to store Unicode characters using the native byte order. Например, лучше использовать прямой порядок байтов на платформах с прямым порядком байтов, таких как компьютеры Intel. For example, it is better to use the little endian byte order on little endian platforms, such as Intel computers.
GetPreambleМетод извлекает массив байтов, включающий метку порядка байтов (BOM). The GetPreamble method retrieves an array of bytes that includes the byte order mark (BOM). Если этот массив байтов имеет префикс в закодированном потоке, он позволяет декодеру указывать используемый формат кодирования. If this byte array is prefixed to an encoded stream, it helps the decoder to identify the encoding format used.
Дополнительные сведения о порядке байтов и метке порядка байтов см. в стандарте Юникода на домашней странице Юникода. For more information on byte order and the byte order mark, see The Unicode Standard at the Unicode home page.
Обратите внимание, что классы кодирования позволяют ошибкам: Note that the encoding classes allow errors to:
Автоматическое изменение символа на символ «?». Silently change to a «?» character.
Используйте символ «лучше подходит». Use a «best fit» character.
Измените поведение приложения с помощью EncoderFallback DecoderFallback классов и с помощью символа замены Юникода U + FFFD. Change to an application-specific behavior through use of the EncoderFallback and DecoderFallback classes with the U+FFFD Unicode replacement character.
При любой ошибке потока данных следует вызывать исключение. You should throw an exception on any data stream error. Приложение либо использует флаг «throwOnError», если применимо, либо использует EncoderExceptionFallback DecoderExceptionFallback классы и. An app either uses a «throwonerror» flag when applicable or uses the EncoderExceptionFallback and DecoderExceptionFallback classes. Резервные стратегии наилучшего соответствия часто не рекомендуются, так как это может привести к потере или путанице данных и медленнее, чем простые замены символов. Best fit fallback is often not recommended because it can cause data loss or confusion and is slower than simple character replacements. Для кодировок ANSI наилучшее поведение используется по умолчанию. For ANSI encodings, the best fit behavior is the default.
Конструкторы
Инициализирует новый экземпляр класса Encoding. Initializes a new instance of the Encoding class.
Инициализирует новый экземпляр класса Encoding, соответствующий заданной кодовой странице. Initializes a new instance of the Encoding class that corresponds to the specified code page.
Инициализирует новый экземпляр класса Encoding, соответствующий заданной кодовой странице, с использованием указанных стратегий резервирования кодировщика и декодера. Initializes a new instance of the Encoding class that corresponds to the specified code page with the specified encoder and decoder fallback strategies.
Свойства
Получает кодировку для набора символов ASCII (7-разрядных). Gets an encoding for the ASCII (7-bit) character set.
Получает кодировку для формата UTF-16 с обратным порядком байтов. Gets an encoding for the UTF-16 format that uses the big endian byte order.
При переопределении в производном классе получает имя текущей кодировки, которое может использоваться с тегами текста сообщения почтового агента. When overridden in a derived class, gets a name for the current encoding that can be used with mail agent body tags.
При переопределении в производном классе получает идентификатор кодовой страницы текущего объекта Encoding. When overridden in a derived class, gets the code page identifier of the current Encoding.
Возвращает или задает объект DecoderFallback для текущего объекта Encoding. Gets or sets the DecoderFallback object for the current Encoding object.
Возвращает кодировку по умолчанию для данной реализации .NET. Gets the default encoding for this .NET implementation.
Возвращает или задает объект EncoderFallback для текущего объекта Encoding. Gets or sets the EncoderFallback object for the current Encoding object.
При переопределении в производном классе получает описание текущей кодировки, которое может быть прочитано пользователем. When overridden in a derived class, gets the human-readable description of the current encoding.
При переопределении в производном классе получает имя текущей кодировки, которое может использоваться с тегами заголовка сообщения почтового агента. When overridden in a derived class, gets a name for the current encoding that can be used with mail agent header tags.
При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами браузера для отображения содержимого. When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for displaying content.
При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами браузера для сохранения содержимого. When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for saving content.
При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами электронной почты и новостей для отображения содержимого. When overridden in a derived class, gets a value indicating whether the current encoding can be used by mail and news clients for displaying content.
При переопределении в производном классе получает значение, указывающее, может ли текущая кодировка использоваться клиентами электронной почты и новостей для сохранения содержимого. When overridden in a derived class, gets a value indicating whether the current encoding can be used by mail and news clients for saving content.
При переопределении в производном классе получает значение, указывающее, является ли текущая кодировка доступной только для чтения. When overridden in a derived class, gets a value indicating whether the current encoding is read-only.
При переопределении в производном классе получает значение, указывающее, используются ли в текущей кодировке однобайтовые кодовые точки. When overridden in a derived class, gets a value indicating whether the current encoding uses single-byte code points.
Возвращает кодировку для набора символов Latin1 (ISO-8859-1). Gets an encoding for the Latin1 character set (ISO-8859-1).
При переопределении в производном классе возвращает диапазон, содержащий последовательность байтов, задающую используемую кодировку. When overridden in a derived class, returns a span containing the sequence of bytes that specifies the encoding used.
Получает кодировку для формата UTF-16 с прямым порядком байтов. Gets an encoding for the UTF-16 format using the little endian byte order.
Получает кодировку для формата UTF-32 с прямым порядком байтов. Gets an encoding for the UTF-32 format using the little endian byte order.
Получает кодировку для формата UTF-7. Gets an encoding for the UTF-7 format.
Получает кодировку для формата UTF-8. Gets an encoding for the UTF-8 format.
При переопределении в производном классе получает для текущей кодировки имя, зарегистрированное в IANA (Internet Assigned Numbers Authority). When overridden in a derived class, gets the name registered with the Internet Assigned Numbers Authority (IANA) for the current encoding.
При переопределении в производном классе получает кодовую страницу операционной системы Windows, наиболее точно соответствующую текущей кодировке. When overridden in a derived class, gets the Windows operating system code page that most closely corresponds to the current encoding.
Методы
При переопределении в производном классе создается неполная копия текущего объекта Encoding. When overridden in a derived class, creates a shallow copy of the current Encoding object.
Преобразует весь массив байтов из одной кодировки в другую. Converts an entire byte array from one encoding to another.
Преобразует диапазон байтов в массиве байтов из одной кодировки в другую. Converts a range of bytes in a byte array from one encoding to another.
Создает Stream, который служит для перекодирования данных между внутренним Encoding и внешним Encoding, как и в случае с Convert(Encoding, Encoding, Byte[]). Creates a Stream that serves to transcode data between an inner Encoding and an outer Encoding, similar to Convert(Encoding, Encoding, Byte[]).
Определяет, равен ли указанный объект Object текущему экземпляру. Determines whether the specified Object is equal to the current instance.
При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов, начиная с заданного указателя символа. When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.
При переопределении в производном классе вычисляет количество байтов, полученных при кодировании всех символов из заданного массива символов. When overridden in a derived class, calculates the number of bytes produced by encoding all the characters in the specified character array.
При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов из указанного массива символов. When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array.
При переопределении в производном классе вычисляет количество байтов, полученных при кодировании символов из заданного диапазона символов. When overridden in a derived class, calculates the number of bytes produced by encoding the characters in the specified character span.
При переопределении в производном классе вычисляет число байтов, полученных при кодировании символов в заданной строке. When overridden in a derived class, calculates the number of bytes produced by encoding the characters in the specified string.
При переопределении в производном классе вычисляет количество байтов, полученных при кодировании набора символов из указанной строки. When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified string.
При переопределении в производном классе кодирует набор символов, начало которого задается указателем символа, в последовательность байтов, которые сохраняются, начиная с заданного указателя байта. When overridden in a derived class, encodes a set of characters starting at the specified character pointer into a sequence of bytes that are stored starting at the specified byte pointer.
При переопределении в производном классе кодирует все символы из указанного массива символов в последовательность байтов. When overridden in a derived class, encodes all the characters in the specified character array into a sequence of bytes.
При переопределении в производном классе кодирует набор символов из указанного массива символов в последовательность байтов. When overridden in a derived class, encodes a set of characters from the specified character array into a sequence of bytes.
При переопределении в производном классе кодирует набор символов из указанного массива символов в указанный массив байтов. When overridden in a derived class, encodes a set of characters from the specified character array into the specified byte array.
При переопределении в производном классе кодирует в диапазон байтов набор символов из указанного диапазона только для чтения. When overridden in a derived class, encodes into a span of bytes a set of characters from the specified read-only span.
При переопределении в производном классе кодирует все символы заданной строки в последовательность байтов. When overridden in a derived class, encodes all the characters in the specified string into a sequence of bytes.
При переопределении в производном классе кодирует в массив байтов количество символов, заданных count в указанной строке, начиная с указанного index . When overridden in a derived class, encodes into an array of bytes the number of characters specified by count in the specified string, starting from the specified index .
При переопределении в производном классе кодирует набор символов из заданной строки в заданный массив байтов. When overridden in a derived class, encodes a set of characters from the specified string into the specified byte array.
При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов, начало которой задается указателем байтов. When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer.
При переопределении в производном классе вычисляет количество символов, полученных при декодировании всех байтов из заданного массива байтов. When overridden in a derived class, calculates the number of characters produced by decoding all the bytes in the specified byte array.
При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов. When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes from the specified byte array.
При переопределении в производном классе вычисляет количество символов, полученных при декодировании предоставленного диапазона байтов только для чтения. When overridden in a derived class, calculates the number of characters produced by decoding the provided read-only byte span.
При переопределении в производном классе декодирует последовательность байтов, которая начинается с заданного указателя байта, в набор символов, которые сохраняются, начиная с заданного указателя символа. When overridden in a derived class, decodes a sequence of bytes starting at the specified byte pointer into a set of characters that are stored starting at the specified character pointer.
При переопределении в производном классе декодирует все байты из указанного массива байтов в набор символов. When overridden in a derived class, decodes all the bytes in the specified byte array into a set of characters.
При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в набор символов. When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a set of characters.
При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в указанный массив символов. When overridden in a derived class, decodes a sequence of bytes from the specified byte array into the specified character array.
При переопределении в производном классе декодирует все байты из диапазона байтов только для чтения в диапазон символов. When overridden in a derived class, decodes all the bytes in the specified read-only byte span into a character span.
При переопределении в производном классе получает декодер, который преобразует последовательность байтов в последовательность символов. When overridden in a derived class, obtains a decoder that converts an encoded sequence of bytes into a sequence of characters.
При переопределении в производном классе получает кодировщик, который преобразует последовательность символов Юникода в закодированную последовательность байтов. When overridden in a derived class, obtains an encoder that converts a sequence of Unicode characters into an encoded sequence of bytes.
Возвращает кодировку, связанную с указанным идентификатором кодовой страницы. Returns the encoding associated with the specified code page identifier.
Возвращает кодировку, связанную с указанным идентификатором кодовой страницы. Returns the encoding associated with the specified code page identifier. С помощью параметров задается обработчик ошибок для символов, которые не удается закодировать, и последовательностей байтов, которые не удается декодировать. Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.
Возвращает кодировку, связанную с указанным именем кодовой страницы. Returns the encoding associated with the specified code page name.
Возвращает кодировку, связанную с указанным именем кодовой страницы. Returns the encoding associated with the specified code page name. С помощью параметров задается обработчик ошибок для символов, которые не удается закодировать, и последовательностей байтов, которые не удается декодировать. Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.
Возвращает массив, содержащий все кодировки. Returns an array that contains all encodings.
Возвращает хэш-код текущего экземпляра. Returns the hash code for the current instance.
При переопределении в производном классе вычисляет максимальное количество байтов, полученных при кодировании заданного количества символов. When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters.
При переопределении в производном классе вычисляет максимальное количество символов, полученных при декодировании заданного количества байтов. When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes.
При переопределении в производном классе возвращает последовательность байтов, задающую используемую кодировку. When overridden in a derived class, returns a sequence of bytes that specifies the encoding used.
При переопределении в производном классе декодирует указанное количество байтов начиная с указанного адреса в строку. When overridden in a derived class, decodes a specified number of bytes starting at a specified address into a string.
При переопределении в производном классе декодирует все байты из указанного массива байтов в строку. When overridden in a derived class, decodes all the bytes in the specified byte array into a string.
При переопределении в производном классе декодирует последовательность байтов из указанного массива байтов в строку. When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a string.
При переопределении в производном классе декодирует все байты из указанного диапазона байтов в строку. When overridden in a derived class, decodes all the bytes in the specified byte span into a string.
Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.
(Унаследовано от Object)
Получает значение, которое указывает, является ли текущая кодировка всегда нормализованной с использованием формы нормализации по умолчанию. Gets a value indicating whether the current encoding is always normalized, using the default normalization form.
При переопределении в производном классе получает значение, которое указывает, является ли текущая кодировка всегда нормализованной с использованием заданной по умолчанию формы нормализации. When overridden in a derived class, gets a value indicating whether the current encoding is always normalized, using the specified normalization form.
Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.
(Унаследовано от Object)
Регистрирует поставщик кодировки. Registers an encoding provider.
Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.
(Унаследовано от Object)
Методы расширения
Кодирует указанный объект ReadOnlySequence в массив Byte, используя указанную кодировку Encoding. Encodes the specified ReadOnlySequence into a Byte array using the specified Encoding.
Декодирует указанный объект ReadOnlySequence в byte с использованием указанной кодировки Encoding и записывает результат в writer . Decodes the specified ReadOnlySequence to byte s using the specified Encoding and writes the result to writer .
Кодирует указанный объект ReadOnlySequence в byte с использованием указанной кодировки Encoding и выводит результат в bytes . Encodes the specified ReadOnlySequence to byte s using the specified Encoding and outputs the result to bytes .
Кодирует указанный объект ReadOnlySpan в byte с использованием указанной кодировки Encoding и записывает результат в writer . Encodes the specified ReadOnlySpan to byte s using the specified Encoding and writes the result to writer .
Декодирует указанный объект ReadOnlySequence в char с использованием указанной кодировки Encoding и записывает результат в writer . Decodes the specified ReadOnlySequence to char s using the specified Encoding and writes the result to writer .
Декодирует указанный объект ReadOnlySequence в char с использованием указанной кодировки Encoding и выводит результат в chars . Decodes the specified ReadOnlySequence to char s using the specified Encoding and outputs the result to chars .
Декодирует указанный объект ReadOnlySpan в char с использованием указанной кодировки Encoding и записывает результат в writer . Decodes the specified ReadOnlySpan to char s using the specified Encoding and writes the result to writer .
Декодирует указанный объект ReadOnlySequence в String, используя указанную кодировку Encoding. Decodes the specified ReadOnlySequence into a String using the specified Encoding.