实例139字符编码类

网络中常用,记到这里方便查找

编码类描述
ASCII通过使用较低的七位字节将有限范围的字符进行编码。 由于此编码仅支持从 U+0000 到 U+007F 的字符值,因此在大多数情况下不足以支持国际化的应用程序。
UTF-7将字符表示为 7 位 ASCII 字符的序列。 非 ASCII Unicode 字符由 ASCII 字符的转义序列表示。 UTF-7 支持电子邮件和新闻组协等协议。 但是,utf-7 不是特别安全或可靠。 在某些情况下,更改一位可以彻底更改对整个 utf-7 字符串的解释。 在其他情况下,不同的 utf-7 字符串可以对相同的文本进行编码。 对于包含非 ASCII 字符的序列,utf-7 需要比 utf-8 更多的空间,且编码/解码更慢。 因此,应尽可能使用 utf-8,而不是 utf-7。
UTF-8将每个 Unicode 码位表示为一至四个字节的序列。 Utf-8 支持 8 位数据大小,适用于许多现有的操作系统。 对于字符的 ASCII 范围,utf-8 等同于 ASCII 编码,并适用于范围更广的字符集。 但是,对于中日韩 (CJK) 脚本而言,针对每个字符 utf-8 可能需要三个字节,并且可能导致比 utf-16 更大的数据大小。 有时 ASCII 数据(如 HTML 标记)的量证明了 CJK 范围大小增加的合理性。
UTF-16将每个 Unicode 码位表示为一至两个 16 位整数的序列。 尽管 Unicode 补充字符(U+10000 和更高版本)需要两个 utf-16 代理项码位,但最常见的 Unicode 字符仅需一个 utf-16 码位。 little-endian 和 big endian 字节顺序均受支持。 公共语言运行时使用 Utf-16 编码表示 Char 和 String 值,Windows 操作系统使用它表示 WCHAR 值。
UTF-32将每个 Unicode 码位表示为一个 32 位整数。 little-endian 和 big endian 字节顺序均受支持。 当应用程序想要避免操作系统上的 utf-16 编码的代理项码位行为时,则使用 utf-32 编码,编码空间对操作系统十分重要。 显示器上呈现的单个标志符号仍可使用多个 UTF-32 字符进行编码。
ANSI/ISO 编码为各种代码页提供支持。 在 Windows 操作系统上,代码页用于支持特定语言或语言组。 有关列出 .NET 支持代码页的表,请参阅 Encoding 类。 通过调用 Encoding.GetEncoding(Int32) 方法可检索特定代码页的编码对象。 一个代码页包含 256 个码位,并且是从零开始。 在大多数代码页中,码位 0 到 127 表示 ASCII 字符集,而码位 128 到 255 在代码页之间存在显著差异。 例如,代码页 1252 为拉丁语书写系统(包括英语、德语和法语)提供字符。 代码页 1252 中最后 128 个码位包含重音字符。 代码页 1253 提供希腊语书写系统中所需的字符代码。 代码页 1253 中最后 128 个码位包含希腊语字符。 因此,基于 ANSI 代码页的应用程序不能将希腊语和德语存储在同一个文本流中,除非它包含一个指示所引用的代码页的标识符。
双字节字符集 (DBCS) 编码支持包含超过 256 个字符的语言,例如中文、日语和朝鲜语。 在 DBCS 中,一对码位(双字节)表示一个字符。 Encoding.IsSingleByte 属性返回 DBCS 编码的 false 。 通过调用 Encoding.GetEncoding(Int32) 方法可以为特定的 DBCS 检索编码对象。 当应用程序处理 DBCS 数据时,DBCS 字符的第一个字节(前导字节)与紧随其后的结尾字节一起处理。 因为根据代码页,一对双字节码位可以代表不同的字符,此模式仍不支持在同一数据流中进行两种语言(如日语和中文)的组合。

这些编码使你能够使用 Unicode 字符以及旧版应用程序中最常用的编码。 此外,通过定义从 Encoding 派生的类并重写其成员,可创建自定义编码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值