UTF7Encoding 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 Unicode 字符的 UTF-7 编码。
public ref class UTF7Encoding : System::Text::Encoding
public class UTF7Encoding : System.Text.Encoding
[System.Serializable]
public class UTF7Encoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class UTF7Encoding : System.Text.Encoding
type UTF7Encoding = class
inherit Encoding
[<System.Serializable>]
type UTF7Encoding = class
inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type UTF7Encoding = class
inherit Encoding
Public Class UTF7Encoding
Inherits Encoding
- 继承
- 属性
示例
下面的代码示例演示如何使用 a a UTF7Encoding 编码 Unicode 字符字符串并将其存储在字节数组中。 请注意,当字节数组解码回字符串时,不会丢失任何数据。
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
// Create a UTF-7 encoding.
UTF7Encoding utf7 = new UTF7Encoding();
// A Unicode string with two characters outside a 7-bit code range.
String unicodeString =
"This Unicode string contains two characters " +
"with codes outside a 7-bit code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
Byte[] encodedBytes = utf7.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf7.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}
}
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class UTF7EncodingExample
Public Shared Sub Main()
' Create a UTF-7 encoding.
Dim utf7 As New UTF7Encoding()
' A Unicode string with two characters outside a 7-bit code range.
Dim unicodeString As String = _
"This Unicode string contains two characters " & _
"with codes outside a 7-bit code range, " & _
"Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
Console.WriteLine("Original string:")
Console.WriteLine(unicodeString)
' Encode the string.
Dim encodedBytes As Byte() = utf7.GetBytes(unicodeString)
Console.WriteLine()
Console.WriteLine("Encoded bytes:")
Dim b As Byte
For Each b In encodedBytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
' Decode bytes back to string.
' Notice Pi and Sigma characters are still present.
Dim decodedString As String = utf7.GetString(encodedBytes)
Console.WriteLine()
Console.WriteLine("Decoded bytes:")
Console.WriteLine(decodedString)
End Sub
End Class
注解
编码是将一组 Unicode 字符转换为字节序列的过程。 解码是将编码字节序列转换为一组 Unicode 字符的过程。
UTF-7 编码将 Unicode 字符表示为 7 位 ASCII 字符序列。 此编码支持需要某些协议,通常是电子邮件或新闻组协议。 由于 UTF-7 不是特别安全或可靠的,并且大多数新式系统允许 8 位编码,因此 UTF-8 通常应优先于 UTF-7。
注释
UTF7Encoding 不提供错误检测。 出于安全原因,应用程序应使用 UTF8Encoding、 UnicodeEncoding或 UTF32Encoding 启用错误检测。
有关 UTF 和支持的其他编码 System.Text的详细信息,请参阅 .NET Framework 中的字符编码。
该方法 GetByteCount 确定对一组 Unicode 字符进行编码的字节数,该方法 GetBytes 执行实际编码。
同样,该方法 GetCharCount 确定对字节序列进行解码的字符数,以及 GetChars 执行 GetString 实际解码的方法。
UTF7Encoding对应于Windows代码页 65000。
注释
如果使用不同的.NET框架版本序列化和反序列化对象,则不会保留 UTF-7 编码对象的状态。
构造函数
| 名称 | 说明 |
|---|---|
| UTF7Encoding() |
初始化 UTF7Encoding 类的新实例。 |
| UTF7Encoding(Boolean) |
初始化 UTF7Encoding 类的新实例。 参数指定是否允许可选字符。 |
属性
| 名称 | 说明 |
|---|---|
| BodyName |
在派生类中重写时,获取可用于邮件代理正文标记的当前编码的名称。 (继承自 Encoding) |
| CodePage |
在派生类中重写时,获取当前 Encoding代码页标识符。 (继承自 Encoding) |
| DecoderFallback |
获取或设置 DecoderFallback 当前 Encoding 对象的对象。 (继承自 Encoding) |
| EncoderFallback |
获取或设置 EncoderFallback 当前 Encoding 对象的对象。 (继承自 Encoding) |
| EncodingName |
在派生类中重写时,获取当前编码的人类可读说明。 (继承自 Encoding) |
| HeaderName |
在派生类中重写时,获取可用于邮件代理标头标记的当前编码的名称。 (继承自 Encoding) |
| IsBrowserDisplay |
在派生类中重写时,获取一个值,该值指示浏览器客户端是否可以使用当前编码来显示内容。 (继承自 Encoding) |
| IsBrowserSave |
在派生类中重写时,获取一个值,该值指示浏览器客户端是否可以使用当前编码来保存内容。 (继承自 Encoding) |
| IsMailNewsDisplay |
在派生类中重写时,获取一个值,该值指示邮件和新闻客户端是否可以使用当前编码来显示内容。 (继承自 Encoding) |
| IsMailNewsSave |
在派生类中重写时,获取一个值,该值指示邮件和新闻客户端是否可以使用当前编码来保存内容。 (继承自 Encoding) |
| IsReadOnly |
在派生类中重写时,获取一个值,该值指示当前编码是否为只读。 (继承自 Encoding) |
| IsSingleByte |
在派生类中重写时,获取一个值,该值指示当前编码是否使用单字节码位。 (继承自 Encoding) |
| Preamble |
在派生类中重写时,返回包含指定所用编码的字节序列的范围。 (继承自 Encoding) |
| WebName |
在派生类中重写时,获取为当前编码向 Internet 分配号码颁发机构(IANA)注册的名称。 (继承自 Encoding) |
| WindowsCodePage |
在派生类中重写时,获取与当前编码最接近的 Windows 操作系统代码页。 (继承自 Encoding) |
方法
| 名称 | 说明 |
|---|---|
| Clone() |
在派生类中重写时,创建当前 Encoding 对象的浅表副本。 (继承自 Encoding) |
| Equals(Object) |
获取一个值,该值指示指定的对象是否等于当前 UTF7Encoding 对象。 |
| Equals(Object) |
确定指定的 Object 实例是否等于当前实例。 (继承自 Encoding) |
| GetByteCount(Char[], Int32, Int32) |
计算通过对指定字符数组中的一组字符进行编码而生成的字节数。 |
| GetByteCount(Char[]) |
在派生类中重写时,计算通过编码指定字符数组中的所有字符生成的字节数。 (继承自 Encoding) |
| GetByteCount(Char*, Int32) |
计算从指定字符指针开始对一组字符进行编码生成的字节数。 |
| GetByteCount(ReadOnlySpan<Char>) |
在派生类中重写时,计算通过对指定字符范围中的字符进行编码生成的字节数。 (继承自 Encoding) |
| GetByteCount(String, Int32, Int32) |
在派生类中重写时,计算通过对指定字符串中的一组字符进行编码生成的字节数。 (继承自 Encoding) |
| GetByteCount(String) |
计算通过对指定 String 对象中的字符进行编码生成的字节数。 |
| GetByteCount(String) |
在派生类中重写时,计算通过对指定字符串中的字符进行编码生成的字节数。 (继承自 Encoding) |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
将指定字符数组中的一组字符编码为指定的字节数组。 |
| GetBytes(Char[], Int32, Int32) |
在派生类中重写时,将指定字符数组中的一组字符编码为字节序列。 (继承自 Encoding) |
| GetBytes(Char[]) |
在派生类中重写时,将指定字符数组中的所有字符编码为字节序列。 (继承自 Encoding) |
| GetBytes(Char*, Int32, Byte*, Int32) |
将一组从指定字符指针开始的字符编码为从指定字节指针开始存储的字节序列。 |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
在派生类中重写时,将字节范围编码为指定只读范围中的一组字符。 (继承自 Encoding) |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
将指定 String 字符集编码为指定的字节数组。 |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
在派生类中重写时,将指定字符串中的一组字符编码为指定的字节数组。 (继承自 Encoding) |
| GetBytes(String, Int32, Int32) |
在派生类中重写时,从指定的 |
| GetBytes(String) |
在派生类中重写时,将指定字符串中的所有字符编码为字节序列。 (继承自 Encoding) |
| GetCharCount(Byte[], Int32, Int32) |
计算通过解码指定字节数组中的字节序列生成的字符数。 |
| GetCharCount(Byte[]) |
在派生类中重写时,计算通过解码指定字节数组中的所有字节生成的字符数。 (继承自 Encoding) |
| GetCharCount(Byte*, Int32) |
计算通过解码从指定字节指针开始的字节序列生成的字符数。 |
| GetCharCount(ReadOnlySpan<Byte>) |
在派生类中重写时,计算通过解码提供的只读字节范围生成的字符数。 (继承自 Encoding) |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
将指定字节数组中的字节序列解码为指定的字符数组。 |
| GetChars(Byte[], Int32, Int32) |
在派生类中重写时,将指定字节数组中的字节序列解码为一组字符。 (继承自 Encoding) |
| GetChars(Byte[]) |
在派生类中重写时,将指定字节数组中的所有字节解码为一组字符。 (继承自 Encoding) |
| GetChars(Byte*, Int32, Char*, Int32) |
将从指定字节指针开始的字节序列解码为从指定字符指针开始存储的一组字符。 |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
在派生类中重写时,将指定只读字节范围中的所有字节解码为字符范围。 (继承自 Encoding) |
| GetDecoder() |
获取将 UTF-7 编码的字节序列转换为 Unicode 字符序列的解码器。 |
| GetEncoder() |
获取将 Unicode 字符序列转换为 UTF-7 编码字节序列的编码器。 |
| GetHashCode() |
返回当前 UTF7Encoding 对象的哈希代码。 |
| GetHashCode() |
返回当前实例的哈希代码。 (继承自 Encoding) |
| GetMaxByteCount(Int32) |
计算通过编码指定字符数生成的最大字节数。 |
| GetMaxCharCount(Int32) |
计算通过解码指定字节数生成的最大字符数。 |
| GetPreamble() |
在派生类中重写时,返回指定使用的编码的字节序列。 (继承自 Encoding) |
| GetString(Byte[], Int32, Int32) |
将字节数组中的字节范围解码为字符串。 |
| GetString(Byte[], Int32, Int32) |
在派生类中重写时,将指定字节数组中的字节序列解码为字符串。 (继承自 Encoding) |
| GetString(Byte[]) |
在派生类中重写时,将指定字节数组中的所有字节解码为字符串。 (继承自 Encoding) |
| GetString(Byte*, Int32) |
在派生类中重写时,将从指定地址开始的指定字节数解码为字符串。 (继承自 Encoding) |
| GetString(ReadOnlySpan<Byte>) |
在派生类中重写时,将指定字节范围中的所有字节解码为字符串。 (继承自 Encoding) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| IsAlwaysNormalized() |
获取一个值,该值指示当前编码是否始终使用默认规范化形式进行规范化。 (继承自 Encoding) |
| IsAlwaysNormalized(NormalizationForm) |
在派生类中重写时,获取一个值,该值指示当前编码是否始终使用指定的规范化形式进行规范化。 (继承自 Encoding) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |