總結歸納:如果直接從system.string類中找到方法進行字串和位元組陣列之間的轉換,是不太可能的。為了使其之間進行轉換,需要借助另外乙個型別:system.text.encoding。這個型別提供了將c#字串轉換成位元組陣列的方法,也提供了將c# 位元組陣列轉換成字串。
system.text.encoding型別的預設建構函式不太可用,不過該型別提供了幾種預設的靜態屬性。如下:1//
2//摘要:3//
獲取 ascii(7 位)字符集的編碼。4//
5//返回結果:6//
ascii(7 位)字符集的編碼。
7public
static encoding ascii 8//
9//摘要:10
//獲取使用 big endian 位元組順序的 utf-16 格式的編碼。
11//
12//
返回結果:
13//
獲取使用 big endian 位元組順序的 utf-16 格式的編碼物件。
14public
static encoding bigendianunicode
15//
16//
摘要:17
//獲取作業系統的當前 ansi **頁的編碼。
18//
19//
返回結果:
20//
作業系統的當前 ansi **頁的編碼。
21public
static encoding default
22//
23//
摘要:24
//獲取使用 little-endian 位元組順序的 utf-16 格式的編碼。
25//
26//
返回結果:
27//
使用 little-endian 位元組順序的 utf-16 格式的編碼。
28public
static encoding unicode
29//
30//
摘要:31
//獲取使用 little-endian 位元組順序的 utf-32 格式的編碼。
32//
33//
返回結果:
34//
使用 little-endian 位元組順序的 utf-32 格式的編碼物件。
35public
static encoding utf32
36//
37//
摘要:38
//獲取 utf-7 格式的編碼。
39//
40//
返回結果:
41//
utf-7 格式的編碼。
42public
static encoding utf7
43//
44//
摘要:45
//獲取 utf-8 格式的編碼。
46//
47//
返回結果:
48//
utf-8 格式的編碼。
49public
static encoding utf8
一、字串轉換成位元組陣列1//
system.text.encoding.getbytes(string str)
2//1. 字串轉換位元組陣列34
string str1 = "
character string1";5
var strtobytes1 = system.text.encoding.utf8.getbytes(str1);67
string str2 = "
character string2";8
var strtobytes2 = system.text.encoding.default.getbytes(str2);910
string str3 = "
character string3
";11
var strtobytes3 = system.text.encoding.unicode.getbytes(str3);
1213
string str4 = "
character string4
";14
var strtobytes4 = system.text.encoding.ascii.getbytes(str4);
1516
string str5 = "
character string5
";17
var strtobytes5 = system.text.encoding.utf32.getbytes(str5);
1819
string str6 = "
character string6
";20
var strtobytes6 = system.text.encoding.utf7.getbytes(str6);
二、位元組陣列轉換成字串1//
2. 位元組陣列轉換成字串
23 console.write("
strtobytes1 使用utf8編碼轉換成字串:
");4
var bytetostring1 = system.text.encoding.utf8.getstring(strtobytes1);
5 console.writeline(bytetostring1);
6 console.write("
strtobytes1 使用default編碼轉換成字串:
");7
var bytetostring2 = system.text.encoding.default.getstring(strtobytes2);
8 console.writeline(bytetostring2);
9 console.write("
strtobytes1 使用unicode編碼轉換成字串:
");10
var bytetostring3 = system.text.encoding.unicode.getstring(strtobytes3);
11 console.writeline(bytetostring3);
12 console.write("
strtobytes1 使用ascii編碼轉換成字串:
");13
var bytetostring4 = system.text.encoding.ascii.getstring(strtobytes4);
14 console.writeline(bytetostring4);
15 console.write("
strtobytes1 使用utf32編碼轉換成字串:
");16
var bytetostring5 = system.text.encoding.utf32.getstring(strtobytes5);
17 console.writeline(bytetostring5);
18 console.write("
strtobytes1 使用utf7編碼轉換成字串:
");19
var bytetostring6 = system.text.encoding.utf7.getstring(strtobytes6);
20 console.writeline(bytetostring6);
三、 字串轉換成流
13. 字串轉換成流
3 system.io.memorystream ms1 = new system.io.memorystream(strtobytes2);
4 system.io.memorystream ms2 = new system.io.memorystream(convert.frombase64string(str1));
四、流轉換成字串
14. 流轉換成字串
3var memorytostring1 = system.text.encoding.default.getstring(ms2.toarray());
4var memorytostring2 = convert.tobase64string(ms2.toarray());
五、位元組陣列轉換成流
1//5. 位元組陣列轉換成流
2 system.io.memorystream ms3 = new system.io.memorystream(strtobytes1);
34 system.io.memorystream ms4 = new system.io.memorystream(); ms4.read(strtobytes1, 0, strtobytes1.length);
六、流轉換成位元組陣列
1//6. 流轉換成位元組陣列23
byte bt = ms3.toarray();
45 system.io.memorystream ms = new system.io.memorystream();
6 ms.write(bt, 0, (int)ms4.length);
C 字串與位元組陣列互轉
定義string變數為str,記憶體流變數為ms,位元陣列為bt 1.字串轉位元陣列 1 byte bt system.text.encoding.default.getbytes 字串 2 byte bt convert.frombase64string 字串 2.字串轉流 1 memorystr...
字串 位元組陣列互轉
將byte轉換為string 或者將string轉換為byte author administrator public class byteorstringhelper param str 源字串轉換成位元組陣列的字串 return public static byte stringtobyte s...
C 中位元組陣列 byte 和字串相互轉換
轉換過程主要使用到system.text.encoding命名空間下的類 1.字串轉換成位元組陣列byte string str this is test string byte bytearray system.text.encoding.default.getbytes str 2.位元組陣列換...