首先要明白它們本身是由什麼組成的:
流:二進位制
位元組:無符號整數
字元:unicode編碼字元
字串:多個unicode編碼字元
那麼在.net下它們之間如何轉化呢?
一般是遵守以下規則:
流->位元組陣列->字元陣列->字串
下面就來具體談談轉化的語法
流->位元組陣列
memorystream ms = new memorystream();
byte buffer = new byte[ms.length];
ms.read(buffer, 0, (int)ms.length);
位元組陣列->流
byte buffer = new byte[10];
memorystream ms = new memorystream(buffer);
位元組陣列->字元陣列
1.byte buffer = new byte[10];
char ch = new asciiencoding().getchars(buffer);
//或者:char ch = encoding.utf8.getchars(buffer)
2.byte buffer = new byte[10];
char ch = new char[10];
for(int i=0; ich[i] = convert.tochar(buffer[i]);
字元陣列->位元組陣列
1.char ch = new char[10];
byte buffer = new asciiencoding().getbytes(ch);
//或者:byte buffer = encoding.utf8.getbytes(ch)
2.char ch = new char[10];
byte buffer = new byte[10];
for(int i=0; ibuffer[i] = convert.tobyte(ch[i]);
字元陣列->字串
char ch = new char[10];
string str = new string(ch);
字串->字元陣列
string str = "abcde";
char ch=str .tochararray();
位元組陣列->字串
byte buffer = new byte[10];
string str = system.text.encoding.utf8.getstring(buffer);
//或者:string str = new asciiencoding().getstring(buffer);
字串->位元組陣列
string str = "abcde";
byte buffer=system.text.encoding.utf8.getbytes(str);
//或者:byte buffer= new asciiencoding().getbytes(str);
說明:主要就是用到了convert類和system.text命名空間下的類,encoding是靜態類,asciiencoding是實體類,方法都是一樣的!
參考文章:
c#中 uint--byte--char--string相互轉換彙總
字串如何與流相互轉換?
char 同 byte 有什麼區別?
c++中 unsigned char != byte
資料流與字串之間的轉換!
檔案流轉換為string(二進位制轉換為字串)
C 中的流 位元組 字元和字串
首先要明白它們本身是由什麼組成的 流 二進位制 位元組 無符號整數 字元 unicode編碼字元 字串 多個unicode編碼字元 那麼在.net下它們之間如何轉化呢?一般是遵守以下規則 流 位元組陣列 字元陣列 字串 下面就來具體談談轉化的語法 流 位元組陣列 memorystream ms ne...
c 流,位元組,字元,字串操作
首先要明白他們本身是由什麼組成的 流 二進位制。位元組 無符號的整數。字元 unicode 編碼字元。unicode編碼 在上述幾個物件的相互轉化中一般遵守 流 位元組陣列 字元陣列 字串 字元陣列或字串轉換成位元組陣列 public static void main c 提供了unicode as...
C 中位元組 字元 字串的區別
先看一下位元組,字元,字串的概念 c 中 定義位元組byte 字元char 字串string 定義陣列時都需定義陣列大小。byte by 84 t 對應的ascii十進位制編碼 char ch t string str this byte可以和char直接進行比較,例如 by 83 char cha...