参考视频教程
https://www.xin3721.com/eschool/VBNetxin3721/
Encoding 类 Visual Studio 2010
发送反馈
表示字符编码。

命名空间: System.Text
程序集: mscorlib(在 mscorlib.dll 中)
语法
VBC#C++F#JScript
打印
_
<ComVisibleAttribute(True)> _
Public MustInherit Class Encoding _
Implements ICloneable
备注
编码是一个将一组 Unicode 字符转换为一个字节序列的过程。而解码是将一个编码字节序列转换为一组 Unicode 字符的过程。有关 Encoding 所支持的 Unicode 转换格式 (UTF) 和其他编码的信息,请参见 了解编码。 请参见 使用 Unicode 编码。

请注意, Encoding 用于对 Unicode 字符进行操作,而不是对任意二进制数据(如字节数组)进行操作。 如果您的应用程序必须将任意二进制数据编码为文本,则该应用程序应使用由 ConvertToBase64CharArray 之类的方法实现的协议(如 uuencode)。

.NET Framework 提供以下 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(代码页 1200)和 Big-Endian(代码页 1201)字节顺序。还可通过 Unicode 属性和 BigEndianUnicode 属性获得。

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

Encoding 类主要用于在不同的编码和 Unicode 之间进行转换。 通常,对于您的应用程序来说,某个派生的 Unicode 类是不错的选择。

您的应用程序使用 GetEncoding 方法来获得其他编码。 它们应使用 GetEncodings 方法来获得所有编码的列表。

下表列出了受支持的编码以及与这些编码关联的代码页。最后一列中的星号指示 .NET Framework 本身即支持该代码页,而不需考虑基础平台。

代码页

Name

显示名称

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

1250

windows-1250

中欧字符 (Windows)

1251

windows-1251

西里尔字符 (Windows)

1252

Windows-1252

西欧字符 (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-japanese

日语 (Mac)

10002

x-mac-chinesetrad

繁体中文 (Mac)

10003

x-mac-korean

朝鲜语 (Mac)

10004

x-mac-arabic

阿拉伯字符 (Mac)

10005

x-mac-hebrew

希伯来字符 (Mac)

10006

x-mac-greek

希腊字符 (Mac)

10007

x-mac-cyrillic

西里尔字符 (Mac)

10008

x-mac-chinesesimp

简体中文 (Mac)

10010

x-mac-romanian

罗马尼亚语 (Mac)

10017

x-mac-ukrainian

乌克兰语 (Mac)

10021

x-mac-thai

泰语 (Mac)

10029

x-mac-ce

中欧字符 (Mac)

10079

x-mac-icelandic

冰岛语 (Mac)

10081

x-mac-turkish

土耳其字符 (Mac)

10082

x-mac-croatian

克罗地亚语 (Mac)

12000

utf-32

Unicode (UTF-32)

12001

utf-32BE

Unicode (UTF-32 Big-Endian)

20000

x-Chinese-CNS

繁体中文 (CNS)

20001

x-cp20001

TCA 台湾

20002

x-Chinese-Eten

繁体中文 (Eten)

20003

x-cp20003

IBM5550 台湾

20004

x-cp20004

TeleText 台湾

20005

x-cp20005

Wang 台湾

20105

x-IA5

西欧字符 (IA5)

20106

x-IA5-German

德语 (IA5)

20107

x-IA5-Swedish

瑞典语 (IA5)

20108

x-IA5-Norwegian

挪威语 (IA5)

20127

us-ascii

US-ASCII

20261

x-cp20261

T.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-Thai

IBM EBCDIC(泰语)

20866

koi8-r

西里尔字符 (KOI8-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-u

西里尔字符 (KOI8-U)

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

欧罗巴

38598

iso-8859-8-i

希伯来字符 (ISO-Logical)

50220

iso-2022-jp

日语 (JIS)

50221

csISO2022JP

日语(JIS- 允许 1 字节假名)

50222

iso-2022-jp

日语(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-be

ISCII 孟加拉语

57004

x-iscii-ta

ISCII 泰米尔语

57005

x-iscii-te

ISCII 泰卢固语

57006

x-iscii-as

ISCII 阿萨姆语

57007

x-iscii-or

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)

如果要转换的数据仅存在于连续块(如从流中读取的数据)中,或者如果数据量很大,需要划分为较小的块,则应用程序应当使用由某个派生类的GetDecoder 方法提供的 Decoder 或由该派生类的 GetEncoder 方法提供的 Encoder。

UTF-16 和 UTF-32 编码器可以使用 Big-Endian 字节顺序(从最高有效字节开始),也可以使用 Little-Endian 字节顺序(从最低有效字节开始)。例如,大写拉丁字母 A (U+0041) 的序列化结果(十六进制)如下所示:

UTF-16 Big-Endian 字节顺序:00 41

UTF-16 Little-Endian 字节顺序:41 00

UTF-32 Big-Endian 字节顺序:00 00 00 41

UTF-32 Little-Endian 字节顺序:41 00 00 00

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

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

有关字节顺序和字节顺序标记的更多信息,请参见位于 联机 Unicode home page(Unicode 主页)上的“The Unicode Standard”(Unicode 标准)。

请注意,编码类允许错误进行如下更改:

无提示地更改为一个 "?"字符。

使用“最佳匹配”字符。

通过将 EncoderFallback 和 DecoderFallback 类与 U+FFFD Unicode 替换字符结合使用来更改为特定于应用程序的行为。

建议让您的应用程序针对所有的数据流错误引发异常。应用程序要么在适用时使用“throwonerror”标志,要么使用 EncoderExceptionFallback 和DecoderExceptionFallback 类。 通常不建议使用最佳匹配回退,因为它可能会导致数据丢失或发生冲突,而且比简单字符替换慢。对于 ANSI 编码,最佳匹配行为是默认行为。

示例
下面的代码示例将字符串从一种编码转换为另一种编码。

说明 说明
byte[] 数组在此示例中是唯一包含编码数据的类型。.NET Char 和字符串类型是本身 Unicode,因此 GetChars 调用将数据再解码为 Unicode。

VBC#C++F#JScript
打印
Imports System
Imports System.Text
Imports Microsoft.VisualBasic

Namespace Convert_Example
Class MyConvertExampleClass
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.ASCIIDim [unicode] As Encoding = Encoding.Unicode' Convert the string into a byte[].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[] into a char[] and then into a string.' This is a slightly different approach to converting to illustrate' the use of GetCharCount/GetChars.Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) As Charascii.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

End Namespace

继承层次结构
System .Object
System.Text .Encoding
System.Text .ASCIIEncoding
System.Text .UnicodeEncoding
System.Text .UTF32Encoding
System.Text .UTF7Encoding
System.Text .UTF8Encoding
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
平台
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Xbox 360, Zune

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见 .NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:4、3.5、3.0、2.0、1.1、1.0
.NET Framework Client Profile
受以下版本支持:4
XNA Framework
受以下版本支持:3.0、2.0、1.0
请参见
参考
Encoding 成员
System.Text 命名空间
其他资源
了解编码

vb.net Encoding类 编码解码相关推荐

  1. AAuto解析电话薄 VCF文件ENCODING=QUOTED-PRINTABLE编码解码

    2019独角兽企业重金招聘Python工程师标准>>> http://www.oschina.net/question/1438716_143767 <pre class=&q ...

  2. URL编码解码工具类

    /****************************************************************************** * CREATETIME : 2016年 ...

  3. 编码解码问题.decode(encoding='gbk', errors='ignore')

    编码解码问题 在一次请求一个网页的过程中,遇到一个问题,代码如下: 这是解决了问题之后的代码 import urllib.requestheaders={'User-Agent':'Mozilla/5 ...

  4. 条形码和二维码编码解码工具类源码

    有一个好的工具,会让你的开发事半功倍.再将讲这个工具类之前,我先给小白补充一点条形码和二维码(以下基础知识选自,我本科阶段的一本教材:<物联网导论>(刘云浩 编著).有对物联网感兴趣的,可 ...

  5. Base64 Encode/Decode Class C++ SourceCode - Base64编码/解码 类 C++ 源码

    Base64 Encode/Decode Class C++ SourceCode - Base64编码/解码 类 C++ 源码 1.Base64.h // Base64.h: interface f ...

  6. python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  7. python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  8. java中文乱码解决之道(五)—–java是如何编码解码的

    编码&解码 1:I/O操作 2:内存 3:数据库 4:javaWeb 下面主要介绍前面两种场景,数据库部分只要设置正确编码格式就不会有什么问题,javaWeb场景过多需要了解URL.get.P ...

  9. java 编码解码_深入解析Java中的编码转换以及编码和解码操作

    一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总 ...

最新文章

  1. php设计是什么意思,php的设计模式是什么
  2. 很多网站,软件对自定义的dpi支持不好
  3. 程序员面试系列之Java单例模式的攻击与防御
  4. codeforces 379F-New Year Tree
  5. CMake,win10,64位,简单配置测试
  6. Excel中的变量 「 Ctrl + F3 」 查看
  7. 单元测试/集成测试/系统测试的区别
  8. SOP封装的后缀字母L M N都代表什么意思?
  9. beatedit不能导入音乐/不能加节拍
  10. java基础之枚举类
  11. WordArt怎样把endnote的关键词生成词云
  12. mysql中怎么根据生日(brithday)获取年龄
  13. Docker -- 镜像仓库(搭建私有镜像仓库、向镜像仓库推送镜像、从镜像仓库拉取镜像)
  14. 生成的分子图像是否可以识别为SMILES,然后再将识别后的SMILES转换为图像?
  15. excel表格计算年龄_在Excel中计算年龄
  16. html页面的src引用网络图片无法显示
  17. 上海市计算机应用基础教学资源平台,课程平台
  18. Android UI - 粒子爆炸特效
  19. 电钻、电锤、电镐的区别
  20. 16位浮点数(FP16)

热门文章

  1. 一切成功源于积累——20140928 认识货币——澳元
  2. 2020 深圳 Gopher Meetup 上线啦!
  3. JavaSE——网络编程
  4. 几十万换来的Ddos攻击防护经验分享(转载)
  5. C语言实现自动出题、单词拼写等功能,附带管理员模式
  6. Https请求报错:unable to find valid certification path to requested target
  7. orCAD 中 WARNING(ORCAP-2435): Number of pins in footprint ‘x‘ and instance ‘u?A‘ does not match
  8. android 放大平铺图片
  9. Java一些七七八八的配置
  10. Android高德地图贴合图片完成手绘地图展示