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 CharString 类型本身就是 unicode,因此调用会将 GetChars 数据解码回 unicode。

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

注解

编码是将一组 Unicode 字符转换为一个字节序列的过程。 相反,解码是将编码字节序列转换为一组 Unicode 字符的过程。 有关 Unicode 转换格式(UTFs)和支持的其他编码的信息 Encoding ,请参阅.net 中的字符编码

请注意, Encoding 旨在对 Unicode 字符而不是任意二进制数据(如字节数组)进行操作。 如果必须将任意二进制数据编码为文本,则应使用诸如 uuencode 这样的协议,该协议是由等方法实现的 Convert.ToBase64CharArray

.NET 提供类的以下实现 Encoding 来支持当前的 Unicode 编码和其他编码:

  • ASCIIEncoding将 Unicode 字符编码为单个7位 ASCII 字符。 此编码仅支持 U + 0000 到 U + 007F 之间的字符值。 代码页20127。 还可通过 ASCII 属性获得。

  • UTF7Encoding使用 UTF-7 编码对 Unicode 字符进行编码。 此编码支持所有 Unicode 字符值。 代码页65000。 还可通过 UTF7 属性获得。

  • UTF8Encoding使用 UTF-8 编码对 Unicode 字符进行编码。 此编码支持所有 Unicode 字符值。 代码页65001。 还可通过 UTF8 属性获得。

  • UnicodeEncoding使用 UTF-16 编码对 Unicode 字符进行编码。 支持 little endian 和大型 endian 字节顺序。 还可通过 Unicode 属性和属性获取 BigEndianUnicode

  • UTF32Encoding使用 32 UTF-8 编码对 Unicode 字符进行编码。 支持 little endian (代码页12000)和大型 endian (代码页12001)字节顺序。 还可通过 UTF32 属性获得。

Encoding类主要用于在不同的编码和 Unicode 之间转换。 通常,其中一个派生的 Unicode 类是适用于你的应用程序的正确选择。

使用 GetEncoding 方法可获取其他编码,并调用 GetEncodings 方法来获取所有编码的列表。

编码列表

下表列出了 .NET 支持的编码。 它列出了每个编码的代码页编号以及编码的 EncodingInfo.Name 和属性的值 EncodingInfo.DisplayName.NET Framework支持.NET Core 支持.NET 5 及更高版本支持列中的检查标记指示该 .NET 实现本机支持代码页,而不考虑基础平台。 对于 .NET Framework,表中列出的其他编码的可用性取决于操作系统。 对于 .NET Core 和 .NET 5 及更高版本,可以使用 System.Text.CodePagesEncodingProvider 类或派生自 System.Text.EncodingProvider 类的其他编码。

注意

EncodingInfo.Name属性对应于国际标准的代码页不一定完全符合该标准。

代码页 “属性” 显示名称 .NET Framework 支持 .NET Core 支持 .NET 5 及更高版本支持
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 多语言拉丁语 I
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 Unicode (大字节序)
1250 windows-1250 中欧语(Windows)
1251 windows-1251 西里尔语(Windows)
1252 GB2312 西欧(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 韩语(Johab)
10000 macintosh 西欧(Mac)
10001 x-mac-日语 日语(Mac)
10002 x-mac-chinesetrad 繁体中文(Mac)
10003 x-mac-韩语 朝鲜语(Mac)
10004 x-mac-阿拉伯语 阿拉伯语(Mac)
10005 x-mac-希伯来语 希伯来语(Mac)
10006 x-mac-希腊语 希腊语(Mac)
10007 x-mac-西里尔文 西里尔语(Mac)
10008 x-mac-chinesesimp 简体中文(Mac)
10010 x-mac 罗马尼亚语(Mac)
10017 x-mac-乌克兰语 乌克兰语(Mac)
10021 x-mac-泰语 泰语(Mac)
10029 x-mac-ce 中欧语(Mac)
10079 x-mac-冰岛语 冰岛语(Mac)
10081 x-mac-土耳其语 土耳其语(Mac)
10082 x-mac-克罗地亚语 克罗地亚语(Mac)
12000 utf-32 Unicode (UTF-32)
12001 32BE Unicode (UTF-16 32 大字节序)
20000 x-中文-CNS 繁体中文(CNS)
20001 x-cp20001 TCA 台湾
20002 x-中文-Eten 繁体中文(Eten)
20003 x-cp20003 IBM5550 台湾
20004 x-cp20004 TeleText 台湾
20005 x-cp20005 Wang 台湾
20105 x-IA5 西欧(IA5)
20106 x-IA5-德语 德语(IA5)
20107 x IA5-瑞典语 瑞典语(IA5)
20108 x IA5-挪威语 挪威语(IA5)
20127 us-ascii US-ASCII
20261 x-cp20261 不是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-泰语 IBM EBCDIC (泰语)
20866 koi8-ru-r 西里尔语(KOI8-RU-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-ru-u 西里尔语(KOI8-RU)
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-欧洲 欧洲
38598 iso-8859-8-i 希伯来语(ISO-逻辑)
50220 iso-2022-日本 日语(JIS)
50221 csISO2022JP 日语(JIS-允许1字节假名)
50222 iso-2022-日本 日语(JIS-允许1字节假名-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 ISCII 孟加拉语
57004 x-iscii-ta ISCII 泰米尔语
57005 x-iscii-te ISCII 泰卢固语
57006 x-iscii-as ISCII 阿萨姆语
57007 x-iscii-或 ISCII 奥里雅语
57008 x-iscii-ka ISCII 埃纳德文
57009 x-iscii-ma ISCII 马拉雅拉姆语
57010 x-iscii-gu ISCII 古吉拉特语
57011 x-iscii-pa ISCII 旁遮普语
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)

下面的示例调用 GetEncoding(Int32)GetEncoding(String) 方法以获取希腊语(Windows)代码页编码。 它将 Encoding 方法调用返回的对象进行比较,以显示它们相等,然后 maps 显示每个字符在希腊语字母表中的 Unicode 码位和相应的代码页值。

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      Encoding enc = Encoding.GetEncoding(1253);
      Encoding altEnc = Encoding.GetEncoding("windows-1253");
      Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
                        altEnc.CodePage, enc.Equals(altEnc));
      string greekAlphabet = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
                             "Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
                             "Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
                             "Φ φ Χ χ Ψ ψ Ω ω";
      Console.OutputEncoding = Encoding.UTF8;
      byte[] bytes = enc.GetBytes(greekAlphabet);
      Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
                        "Unicode Code Point", "Code Page 1253");
      for (int ctr = 0; ctr < bytes.Length; ctr++) {
         if (greekAlphabet[ctr].Equals(' '))
            continue;

         Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet[ctr],
                           GetCodePoint(greekAlphabet[ctr]), bytes[ctr]);
      }
   }

   private static string GetCodePoint(char ch)
   {
      string retVal = "u+";
      byte[] bytes = Encoding.Unicode.GetBytes(ch.ToString());
      for (int ctr = bytes.Length - 1; ctr >= 0; ctr--)
         retVal += bytes[ctr].ToString("X2");

      return retVal;
   }
}
// The example displays the following output:
//       Character      Unicode Code Point       Code Page 1253
//       Α                          u+0391                   C1
//       α                          u+03B1                   E1
//       Β                          u+0392                   C2
//       β                          u+03B2                   E2
//       Γ                          u+0393                   C3
//       γ                          u+03B3                   E3
//       Δ                          u+0394                   C4
//       δ                          u+03B4                   E4
//       Ε                          u+0395                   C5
//       ε                          u+03B5                   E5
//       Ζ                          u+0396                   C6
//       ζ                          u+03B6                   E6
//       Η                          u+0397                   C7
//       η                          u+03B7                   E7
//       Θ                          u+0398                   C8
//       θ                          u+03B8                   E8
//       Ι                          u+0399                   C9
//       ι                          u+03B9                   E9
//       Κ                          u+039A                   CA
//       κ                          u+03BA                   EA
//       Λ                          u+039B                   CB
//       λ                          u+03BB                   EB
//       Μ                          u+039C                   CC
//       μ                          u+03BC                   EC
//       Ν                          u+039D                   CD
//       ν                          u+03BD                   ED
//       Ξ                          u+039E                   CE
//       ξ                          u+03BE                   EE
//       Ο                          u+039F                   CF
//       ο                          u+03BF                   EF
//       Π                          u+03A0                   D0
//       π                          u+03C0                   F0
//       Ρ                          u+03A1                   D1
//       ρ                          u+03C1                   F1
//       Σ                          u+03A3                   D3
//       σ                          u+03C3                   F3
//       ς                          u+03C2                   F2
//       Τ                          u+03A4                   D4
//       τ                          u+03C4                   F4
//       Υ                          u+03A5                   D5
//       υ                          u+03C5                   F5
//       Φ                          u+03A6                   D6
//       φ                          u+03C6                   F6
//       Χ                          u+03A7                   D7
//       χ                          u+03C7                   F7
//       Ψ                          u+03A8                   D8
//       ψ                          u+03C8                   F8
//       Ω                          u+03A9                   D9
//       ω                          u+03C9                   F9
Imports System.Text

Module Example
   Public Sub Main()
      Dim enc As Encoding = Encoding.GetEncoding(1253)
      Dim altEnc As Encoding = Encoding.GetEncoding("windows-1253")
      Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
                        altEnc.CodePage, enc.Equals(altEnc))
      Dim greekAlphabet As String = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
                                    "Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
                                    "Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
                                    "Φ φ Χ χ Ψ ψ Ω ω"
      Console.OutputEncoding = Encoding.UTF8
      Dim bytes() As Byte = enc.GetBytes(greekAlphabet)
      Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
                        "Unicode Code Point", "Code Page 1253")
      For ctr As Integer = 0 To bytes.Length - 1
         If greekAlphabet(ctr).Equals(" "c) Then Continue For

         Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet(ctr),
                           GetCodePoint(greekAlphabet(ctr)), bytes(ctr))
      Next

   End Sub
   
   Private Function GetCodePoint(ch As String) As String
      Dim retVal As String = "u+"
      Dim bytes() As Byte = Encoding.Unicode.GetBytes(ch)
      For ctr As Integer = bytes.Length - 1 To 0 Step -1
         retVal += bytes(ctr).ToString("X2")
      Next
      Return retVal
   End Function
End Module
' The example displays the following output:
'    Character      Unicode Code Point       Code Page 1253
'    Α                          u+0391                   C1
'    α                          u+03B1                   E1
'    Β                          u+0392                   C2
'    β                          u+03B2                   E2
'    Γ                          u+0393                   C3
'    γ                          u+03B3                   E3
'    Δ                          u+0394                   C4
'    δ                          u+03B4                   E4
'    Ε                          u+0395                   C5
'    ε                          u+03B5                   E5
'    Ζ                          u+0396                   C6
'    ζ                          u+03B6                   E6
'    Η                          u+0397                   C7
'    η                          u+03B7                   E7
'    Θ                          u+0398                   C8
'    θ                          u+03B8                   E8
'    Ι                          u+0399                   C9
'    ι                          u+03B9                   E9
'    Κ                          u+039A                   CA
'    κ                          u+03BA                   EA
'    Λ                          u+039B                   CB
'    λ                          u+03BB                   EB
'    Μ                          u+039C                   CC
'    μ                          u+03BC                   EC
'    Ν                          u+039D                   CD
'    ν                          u+03BD                   ED
'    Ξ                          u+039E                   CE
'    ξ                          u+03BE                   EE
'    Ο                          u+039F                   CF
'    ο                          u+03BF                   EF
'    Π                          u+03A0                   D0
'    π                          u+03C0                   F0
'    Ρ                          u+03A1                   D1
'    ρ                          u+03C1                   F1
'    Σ                          u+03A3                   D3
'    σ                          u+03C3                   F3
'    ς                          u+03C2                   F2
'    Τ                          u+03A4                   D4
'    τ                          u+03C4                   F4
'    Υ                          u+03A5                   D5
'    υ                          u+03C5                   F5
'    Φ                          u+03A6                   D6
'    φ                          u+03C6                   F6
'    Χ                          u+03A7                   D7
'    χ                          u+03C7                   F7
'    Ψ                          u+03A8                   D8
'    ψ                          u+03C8                   F8
'    Ω                          u+03A9                   D9
'    ω                          u+03C9                   F9

如果要转换的数据仅在顺序块(如从流中读取的数据)中可用,或者如果数据量很大以致需要分为更小块,则应使用 DecoderEncoderGetDecoder 派生类的方法或方法提供的或 GetEncoder

UTF-16 和32编码器可以使用大 endian 字节顺序(首先是最重要的字节),也可以是 little endian 字节顺序(首先是最不重要的字节)。 例如,拉丁文大写字母 A (U + 0041)按以下方式序列化(十六进制):

  • UTF-16 大 endian 字节顺序: 00 41

  • UTF-16 little endian 字节顺序: 41 00

  • 32大 endian 字节顺序: 00 00 00 41

  • 32 little endian 字节顺序: 41 00 00 00

使用本机字节顺序存储 Unicode 字符通常更有效。 例如,最好使用 little endian 平台(如 Intel 计算机)上的 little endian 字节顺序。

GetPreamble方法检索包含字节顺序标记(BOM)的字节数组。 如果此字节数组的前缀为编码的流,则它有助于解码器识别所使用的编码格式。

有关字节顺序和字节顺序标记的详细信息,请参阅unicode 主页上的 unicode 标准。

请注意,编码类允许错误:

  • 以无提示方式更改为 "?" 字符。

  • 使用 "最佳匹配" 字符。

  • 通过将 EncoderFallbackDecoderFallback 类与 U + FFFD Unicode 替换字符一起使用,更改为应用程序特定的行为。

应在出现任何数据流错误时引发异常。 应用在适用或使用和类时,使用 "throwonerror" 标志 EncoderExceptionFallbackDecoderExceptionFallback 。 通常不建议使用最佳回退,因为这可能会导致数据丢失或混乱,并比简单字符替换慢。 对于 ANSI 编码,最佳行为是默认值。

构造函数

Encoding()

初始化 Encoding 类的新实例。

Encoding(Int32)

初始化对应于指定代码页的 Encoding 类的新实例。

Encoding(Int32, EncoderFallback, DecoderFallback)

使用指定编码器和解码器回退策略初始化对应于指定代码页的 Encoding 类的新实例。

属性

ASCII

获取 ASCII(7 位)字符集的编码。

BigEndianUnicode

获取使用 Big Endian 字节顺序的 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

获取使用 Little-Endian 字节顺序的 UTF-16 格式的编码。

UTF32

获取使用 Little-Endian 字节顺序的 UTF-32 格式的编码。

UTF7
已过时。

获取 UTF-7 格式的编码。

UTF8

获取 UTF-8 格式的编码。

WebName

在派生类中重写时,获取在 Internet 编号分配管理机构 (IANA) 注册的当前编码的名称。

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)

在派生类中重写时,从指定的 index 开始,将指定字符串中由 count 指定的字符数编码为字节数组。

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

在派生类中重写时,获取一个解码器,该解码器将 Unicode 字符序列转换为已编码的字节序列。

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

使用指定的 Encoding 将指定的 ReadOnlySequence<T> 编码到 Byte 数组中。

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

使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码为 byte,并将结果写入 writer

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

使用指定的 Encoding 将指定的 ReadOnlySequence<T> 编码为 byte,并将结果输出到 bytes

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

使用指定的 Encoding 将指定的 ReadOnlySpan<T> 编码为 byte,并将结果写入 writer

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

使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码为 char,并将结果写入 writer

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

使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码为 char,并将结果输出到 chars

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

使用指定的 Encoding 将指定的 ReadOnlySpan<T> 解码为 char,并将结果写入 writer

GetString(Encoding, ReadOnlySequence<Byte>)

使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码到 String

适用于

另请参阅