C# 字节数组和字符串的相互转换

时间:2023-01-10 09:55:20

c#中提供字节数组和字符串的相互转换的类:System.Text.Encoding

一:字符串-->字节数组,需要调用System.Text.Encoding中各种编码类的GetBytes方法。

二:字节数组-->字符串,需要调用System.Text.Encoding中各种编码类的GetString方法。

 

System.Text.Encoding

    Encoding类负责字符的编码和字节序列的解码。编码是一个将一组 Unicode 字符转换为一个字节序列的过程,而解码是将一个编码字节序列转换为一组 Unicode 字符的过程。Encoding 类主要用于在不同的编码和 Unicode 之间进行转换。

    Encoding类中有几个静态属性用于提供更快的获得这些编码类,有:Unicode BigEndianUnicode UTF32 UTF7 UTF8 ASCII Default ,也可以使用GetEncoding(Int32) GetEncoding(String)方法通过编码代号和名称来获取相应的编码类。GetEncodings()将以数组的形式返回系统支持的所有编码类。

 

一些常用编码的代号和名称:

936

        gb2312

         简体中文 (GB2312)

 

950

       big5

           繁体中文 (Big5)

1200

utf-16 

Unicode

12000

     utf-32

           Unicode (UTF-32)

20127

us-ascii

 US-ASCII

28591

     iso-8859-1

     西欧字符 (ISO)

 

常用方法:

GetString已重载。 在派生类中重写时,将一个字节序列解码为一个字符串。

GetChars已重载。 在派生类中重写时,将一个字节序列解码为一组字符。

GetBytes已重载。 在派生类中重写时,将一组字符编码为一个字节序列。

 

GetByteCount已重载。 在派生类中重写时,计算对一组字符进行编码所产生的字节数。

GetCharCount已重载。 在派生类中被重写时,计算对字节序列进行解码所产生的字符数。

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

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