C如何將byte轉換為漢字,C 中如何將byte 轉化為字串

2021-05-04 11:09:18 字數 3620 閱讀 5209

1樓:匿名使用者

使用:encoding.utf8.getstring(bytes);即可

其中utf8可以寫成其他的編碼格式。

.net framework 提供以下 encoding 類的實現以支援當前 unicode 編碼和其他編碼:

asciiencoding 將 unicode 字元編碼為單個 7 位 ascii 字元。此編碼僅支援 u+0000 和 u+007f 之間的字元值。**頁 20127。

還可通過 ascii 屬性獲得。

utf7encoding 使用 utf-7 編碼對 unicode 字元進行編碼。此編碼支援所有 unicode 字元值。**頁 65000。還可通過 utf7 屬性獲得。

utf8encoding 使用 utf-8 編碼對 unicode 字元進行編碼。此編碼支援所有 unicode 字元值。**頁 65001。還可通過 utf8 屬性獲得。

unicodeencoding 使用 utf-16 編碼對 unicode 字元進行編碼。支援 little-endian(**頁 1200)和 big-endian(**頁 1201)位元組順序。還可通過 unicode 屬性和 bigendianunicode 屬性獲得。

utf32encoding 使用 utf-32 編碼對 unicode 字元進行編碼。支援 little-endian(**頁 65005)和 big-endian(**頁 65006)位元組順序。還可通過 utf32 屬性獲得。

2樓:二樓聽風雨

string str= encoding.utf8.getstring(bytes);

utf8這裡你可以試試。總之是編碼ascii的問題,試試就知道了,呵呵。

3樓:五千個位元組

一樓正解

原因是一個漢字佔兩個位元組

所以漢字的二進位制陣列的位數必須要是偶數個,轉化回來的時候也要遵循兩個位元組的轉,ascii是單位元組的轉,所以會出現亂碼

c#中如何將byte[]轉化為字串!!!

4樓:四舍**入

c#中將byte轉化為字串可以參考以下的**:

//字串轉byte

string stringmessage = "how are you?";

console.writeline("", stringmessage);

system.text.asciiencoding ascii = new system.text.asciiencoding();

byte bytesmessage = ascii.getbytes(stringmessage);

//byte轉字串

byte bytesmessage;

system.text.asciiencoding ascii = new system.text.asciiencoding();

string stringmessage = ascii.getstring( bytesmessage );

擴充套件資料:

字串的轉換

可以用 (string) 標記或者strval()函式將一個值轉換為字串。當某表示式需要字串時,字串的轉換會在表示式範圍內自動完成。例如當使用echo()或者print()函式時,或者將一個變數值與一個字串進行比較的時候。

閱讀手冊中有關型別和型別戲法中的部分有助於更清楚一些。

整數或浮點數數值在轉換成字串時,字串由表示這些數值的數字字元組成(浮點數還包含有指數部分)。

陣列將被轉換成字串 "array",因此無法通過echo()或者print()函式來輸出陣列的內容。

5樓:

實現位元組陣列至十六進位制字串轉換,這個操作在接收網路資料時非常有用,**嘛,就一行,就一行,就一行:

string str = bitconverter.tostring(bytes);

6樓:匿名使用者

有兩張方法

:方法一:

//字串轉byte

string stringmessage = "how are you?";

console.writeline("", stringmessage);

system.text.asciiencoding ascii = new system.text.asciiencoding();

byte bytesmessage = ascii.getbytes(stringmessage);

//byte轉字串

byte bytesmessage;

system.text.asciiencoding ascii = new system.text.asciiencoding();

string stringmessage = ascii.getstring( bytesmessage );

方法二:

//字串轉

utf-8 byte

string stringmessage = "hello world how are you? pi /u03c0 yen /uffe5";

system.text.utf8encoding utf8 = new system.text.utf8encoding();

byte bytesmessage = utf8.getbytes(stringmessage);

//utf-8 byte 轉字串

byte bytesmessage;

system.text.utf8encoding utf8 = new system.text.utf8encoding();

string stringmessage = utf8.getstring( bytesmessage );

7樓:匿名使用者

string s = "abcd";

byte b = system.text.encoding.default.getbytes(s);

string s2 = system.text.encoding.default.getstring(b);

8樓:姚慰

我也是個夜貓子。你的想法是想把資料加密。我的建議是,你自己寫一個演算法【複雜程度自己決定】,比如你接受的字串是"abcd",你逐個讀取字元,然後執行你的演算法加密,比如把a+1=b[ascii碼]得到一個新的字元,當你想解密還原的時候在執行一套解密演算法,把b-1。

一般有加密演算法就有解密演算法的。加密與解密就是個演算法問題。

9樓:匿名使用者

你可以轉為byte後,移位在轉為字串

c#如何將16進位制字串轉換為漢字?

10樓:匿名使用者

假定你輸入d0bbd0bb是在textbox1,結果要顯示在textbox2中,那就是

public static byte hexstringtobytearray(string s)

當你要轉換的時候即為

textbox2.text=encoding.getencoding("gb2312").

getstring(hexstringtobytearray(textbox1.text));

C如何將yyyy HH mm格式字串轉換為datetime型別

datetime dt string inputstring yyyy mm dd hh mm datetime.tryparse string.format 00 inputstring out dt 可以不輸入ss,但是一個datetime不可能不存在ss。可以把ss預設設定為0 感覺沒有理解你...

C中如何將十六進位制數轉換為十進位制數

用字串儲存要轉copy換的16進位制數,然後把一個一個字元轉換為10進位制樹.大致 如下 string hexa cin hexa int sum 0 for int i 0 i hexa.size i 補充 change 函式就是取一個字元,返回相應的整數就行了.用switch判斷選擇就ok了.對...

請問在Excel表中,如何將時間轉換為數值例如 3 05轉換為3 5(小時)

呵呵,它不能按你說的轉換,但3 30可以轉成3.5的 text a1 24,0.00 這 很矛盾哦!起碼是個時間段吧!或者你只是意義上的改變的話,你可以選擇 替換 功能,然後按ctrl h,上面輸入 下面一欄輸入 然後按確定 選中要轉換的內容或單元格 右擊 設定單元格格式 數字 選擇就行了,看圖吧!...