1. 程式人生 > >C#字串、位元組陣列和記憶體流間的相互轉換 ASCII碼錶

C#字串、位元組陣列和記憶體流間的相互轉換 ASCII碼錶

定義string變數為str,記憶體流變數為ms,位元陣列為bt

 

1.字串=>位元陣列

(1)byte[] bt=System.Text.Encoding.Default.GetBytes("字串");

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

補充:

System.Text.Encoding.Unicode.GetBytes(str);
System.Text.Encoding.UTF8.GetBytes(str);
System.Text.Encoding.GetEncoding("gb2312").GetBytes(str); //指定編碼方式
string str = "中國?ss123?";
byte[] bytes = System.Text.Encoding.Default.GetBytes(str); //gb2312編碼 漢字佔2個位元組、英文字母佔1個位元組 bytes長度為12
string s = System.Text.Encoding.Default.GetString(new byte[] { bytes[0],bytes[1] });//解碼後為“中”
byte[] bytes = {97, 98, 99, 100, 101, 102};  
string str = System.Text.Encoding.ASCII.GetString(bytes); //結果為:abcdef  
ASCII碼錶

      常用方法:

複製程式碼 複製程式碼
GetString  已過載。 在派生類中重寫時,將一個位元組序列解碼為一個字串。
GetChars   已過載。 在派生類中重寫時,將一個位元組序列解碼為一組字元。
GetBytes   已過載。 在派生類中重寫時,將一組字元編碼為一個位元組序列。

GetByteCount  已過載。 在派生類中重寫時,計算對一組字元進行編碼所產生的位元組數。
GetCharCount  已過載。 在派生類中被重寫時,計算對位元組序列進行解碼所產生的字元數。

GetDecoder 在派生類中重寫時,獲取一個解碼器,該解碼器將已編碼的位元組序列轉換為字元序列。
GetEncoder 在派生類中重寫時,獲取一個解碼器,該解碼器將Unicode字元序列轉換為已編碼的位元組序列
複製程式碼 複製程式碼

 

2.位元陣列=>字串

(1)string str=System.Text.Encoding.Default.GetString(bt);

(2)string str=Convert.ToBase64String(bt);

 

3.字串=>

(1)MemoryStream ms=new MemoryStream(System.Text.Encoding.Default.GetBytes("字串"));

(2)MemoryStream ms=new MemoryStream(Convert.FromBase64String("字串"));

 

4.流=>字串

(1)string str=Convert.ToBase64String(ms.ToArray());

(2)string str=System.Text.Encoding.Default.GetString(ms.ToArray());

 

5.位元陣列=>

(1)MemoryStream ms=new MemoryStream(bt);

(2)MemoryStream ms=new MemoryStream();ms.Read(bt,0,bt.Lenght);

 

6.流=>位元陣列

(1)byte[] bt=ms.ToArray();

(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);