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...