c 流,位元組,字元,字串操作

2022-03-08 12:54:03 字數 1886 閱讀 1163

首先要明白他們本身是由什麼組成的

流:二進位制。

位元組:無符號的整數。

字元:unicode 編碼字元。(unicode編碼)

在上述幾個物件的相互轉化中一般遵守:

流 ——> 位元組陣列 ——>字元陣列 ——>字串

字元陣列或字串轉換成位元組陣列

public static void 

main()

c#提供了unicode、asciie、utf系列的編碼方式。或者使用convert.tobyte,通過for迴圈乙個乙個字元轉化也可以進行。不過不推薦,貌似這樣把東西複雜化了。
如果是gb2312的編碼需要進行相應的轉換才能正確使用,轉換方式為:字串 –> 位元組陣列 –>(具有指定編碼)字串
byte

bs =

encoding

.getencoding(

"gb2312"

).getbytes(str);

bs =

encoding

.convert(

encoding

.getencoding(

"gb2312"

), encoding

.getencoding(

"utf-8"

), bs);

string

res =

encoding

.getencoding(

"utf-8"

).getstring(bs);

字串 <==> 字元陣列:

//字串轉換成字元陣列。

char

cs = str.tochararray();

//字元陣列轉化成字串。

string

newstr = cs.tostring();

其實c#內建的字串就是字元陣列。他們相互轉換沒有什麼難度。

位元組陣列 <==> 字串

前文有詳細的介紹,如需參看:檢視。

因為從位元組陣列轉換到字串涉及到編碼問題,要根據實際程式設計需要進行轉換。

提供乙個靜態的方法用於轉換編碼型別:

///

///

將字串轉換成另一種編碼的字串。

///

///

源字串。

///

源字串的編碼型別。

///

目標字串的編碼型別。

///

public static string

convertstr(

string

str,

string

from,

string

to)

流和位元組陣列的轉換:

memorystream 

ms =

new

memorystream

(buffer);

通過 memeorystream 的建構函式實現了將位元組陣列轉換成流的方法。

同樣的在memorystream的例項中提供了toarray、read方法將資料讀到位元組陣列中來,同時

微軟提供了streamreader和streamwriter類幫我們實現在流上讀寫字串的功能。

檔案流和網路流提供非同步的讀取方法用於從流中讀取資料,具體檢視的另乙個人的鏈結寫的全面。

c 中的流,位元組,字元,字串

首先要明白它們本身是由什麼組成的 流 二進位制 位元組 無符號整數 字元 unicode編碼字元 字串 多個unicode編碼字元 那麼在.net下它們之間如何轉化呢?一般是遵守以下規則 流 位元組陣列 字元陣列 字串 下面就來具體談談轉化的語法 流 位元組陣列 memorystream ms ne...

C 中的流 位元組 字元和字串

首先要明白它們本身是由什麼組成的 流 二進位制 位元組 無符號整數 字元 unicode編碼字元 字串 多個unicode編碼字元 那麼在.net下它們之間如何轉化呢?一般是遵守以下規則 流 位元組陣列 字元陣列 字串 下面就來具體談談轉化的語法 流 位元組陣列 memorystream ms ne...

C 中流,位元組,字元,字串

首先要明白它們本身是由什麼組成的 流 二進位制 位元組 無符號整數 字元 unicode編碼字元 字串 多個unicode編碼字元 那麼在.net下它們之間如何轉化呢?一般是遵守以下規則 流 位元組陣列 字元陣列 字串 下面就來具體談談轉化的語法 流 位元組陣列 memorystream ms ne...