C 字串與位元組陣列相互轉換

2021-08-28 15:42:50 字數 4822 閱讀 4309

總結歸納:如果直接從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. 位元組陣列轉換成字串

2

3 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);

三、 字串轉換成流

1

3. 字串轉換成流

3 system.io.memorystream ms1 = new system.io.memorystream(strtobytes2);

4 system.io.memorystream ms2 = new system.io.memorystream(convert.frombase64string(str1));

四、流轉換成字串

1

4. 流轉換成字串

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.位元組陣列換...