Encoding 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示字符编码。
public ref class Encoding abstract
public ref class Encoding abstract : ICloneable
public abstract class Encoding
public abstract class Encoding : ICloneable
[System.Serializable]
public abstract class Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Encoding : ICloneable
type Encoding = class
type Encoding = class
interface ICloneable
[<System.Serializable>]
type Encoding = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Encoding = class
interface ICloneable
Public MustInherit Class Encoding
Public MustInherit Class Encoding
Implements ICloneable
- 继承
-
Encoding
- 派生
- 属性
- 实现
示例
下面的示例将字符串从一种编码转换为另一种编码。
注意
byte[]
在此示例中,数组是包含编码数据的唯一类型。 .NET Char
和 String
类型本身就是 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 (?)
注解
有关此 API 的详细信息,请参阅 编码的补充 API 说明。
构造函数
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) |
在派生类中重写时,从指定的 |
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> 解码为 |
GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
使用指定的 Encoding 将指定的 ReadOnlySequence<T> 编码为 |
GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
使用指定的 Encoding 将指定的 ReadOnlySpan<T> 编码为 |
GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码为 |
GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码为 |
GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
使用指定的 Encoding 将指定的 ReadOnlySpan<T> 解码为 |
GetString(Encoding, ReadOnlySequence<Byte>) |
使用指定的 Encoding 将指定的 ReadOnlySequence<T> 解码到 String。 |