C#中字符串與字節數組的轉換方式

一、編碼(轉成字節數組)GetBytes

  1、ASII碼:字符串中的每個字符用一個字節表示。

每個字符實際上隻使用瞭7位,從00h-7Fh。隻能表達128個字符。不能代表漢字,

byte[] b = Encoding.ASCII.GetBytes("yourstring");
Console.Write(string.Join("-", b.Select(p => p.ToString())));

   //  得到:121-111-117-114-115-116-114-105-110-103   

2、Unicode碼:字符串中的每個字符用兩個字節表示。

byte[] b = Encoding.Unicode.GetBytes("哈啊a1");

  //  得到:200-84-74-85-97-0-49-0

3、簡體中文:字符串中的每個中文字符用兩個字節表示,其他字符用一個字節表示。

byte[] b = Encoding.GetEncoding("gb2312").GetBytes("哈啊a1");//繁體中文”big5”
Console.Write(string.Join("-", b.Select(p => p.ToString())));

   //  得到:185-254-176-161-97-49

UTF-8中,一個漢字對應三個字節,GB2312中一個漢字占用兩個字節。 
不論何種編碼,字母數字都不編碼,特殊符號編碼後占用一個字節。

二、解碼(轉成字符串):GetString、GetChars

Encoding.XXX.GetString(byte[] data,[,index,count]);

三、基於Base64(ASCII)編碼的字符串與字節數組的轉換

1、將指定的字符串(它將二進制數據編碼為 Base64 數字)轉換為等效的 8 位無符號整數數組。

byte[] bt=Convert.FromBase64String("字符串");

2、將 8 位無符號整數數組的值轉換為其用 Base64 數字編碼的等效字符串表示形式。

Convert.ToBase64String(byte[] data,[,index,count]);

四、字節數組與字符數組轉換

1、字符數組轉字節數組

Encoding.XXX.GetEncoder().GetBytes(char[],0.length,byte[],0,true)

2、字節數組轉字符數組

Encoding.XXX.GetDecoder().GetChars(byte[],0.length,char[],0)

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: