C 中byte 與string的轉換

2021-04-09 03:22:56 字數 1487 閱讀 6497

c#中byte與string的轉換

1、system.text.unicodeencoding converter = new system.text.unicodeencoding();

byte inputbytes =converter.getbytes(inputstring);

string  inputstring = converter.getstring(inputbytes);

2、string inputstring = system.convert.tobase64string(inputbytes);

byte inputbytes = system.convert.frombase64string(inputstring);

編碼是乙個將一組 unicode 字元轉換為乙個位元組序列的過程。解碼是乙個反向操作過程,即將乙個編碼位元組序列轉換為一組 unicode 字元。

unicode 標準為所有支援指令碼中的每個字元分配乙個碼位(乙個數字)。unicode 轉換格式 (utf) 是一種碼位編碼方式。unicode 標準 3.2 版使用下列 utf:

utf-8,它將每個碼位表示為乙個由 1 至 4 個位元組組成的序列。

utf-16,它將每個碼位表示為乙個由 1 至 2 個 16 位整數組成的序列。

utf-32,它將每個碼位表示為乙個 32 位整數。

getbytecount 方法確定將有多少位元組對 unicode 字符集進行編碼,而 getbytes 方法執行實際的編碼。

同樣,getcharcount 方法確定將有多少字元對位元組序列進行解碼,而 getchars 和 getstring 方法執行實際的解碼。

編碼器可以使用 big-endian 位元組順序(從最高有效位元組開始),也可以使用 little-endian 位元組順序(從最低有效位元組開始)。例如,大寫拉丁字母 a(碼位為 u+0041)的序列化結果(十六進製制)如下所示:

big-endian 位元組順序:00 41

little-endian 位元組順序:41 00

或者,unicodeencoding 提供乙個前導碼(即乙個位元組陣列),可以將它作為編碼過程中所產生的位元組序列的字首。如果前導碼中包含位元組順序標記(碼位為 u+feff),則它會幫助解碼器確定位元組順序和轉換格式或 utf。unicode 位元組順序標記的序列化結果(十六進製制)如下所示:

big-endian 位元組順序:fe ff

little-endian 位元組順序:ff fe

通常,使用本機位元組順序儲存 unicode 字元的效率更高。例如,在 little-endian 平台(如 intel 計算機)上最好使用 little-endian 位元組順序。

getpreamble 方法返回乙個包含位元組順序標記的位元組陣列。如果將此位元組陣列作為編碼流的字首,將有助於解碼器識別所用的編碼格式。

有關 unicode 編碼、位元組順序和位元組順序標記的更多資訊,請參見 www.unicode.org 上的「the unicode standard」(unicode 標準)部分。

byte與string底層強轉

用關鍵字進行強轉,底層會發生拷貝,兩個變數互不影響。示例 s 012345 b byte s s1 string b fmt.println s1 b 0 9 fmt.println s1 run test 強轉 012345 012345 pass test 強轉 0.00s pass1 byte...

C 中byte 與string的轉換

1 system.text.unicodeencoding converter new system.text.unicodeencoding byte inputbytes converter.getbytes inputstring string inputstring converter.ge...

C 中byte 與string的轉換

1 system.text.unicodeencoding converter new system.text.unicodeencoding byte inputbytes converter.getbytes inputstring string inputstring converter.ge...