16進製制與字串轉換

2021-04-06 15:32:39 字數 1856 閱讀 5539

字串為 string 型別並可寫成兩種形式,即用引號引起來和用 @ 引起來。用引號引起來的字串括在雙引號 (") 內:

"good morning"  // a string literal

並且可以包含包括換碼序列在內的任何字元:

string a = "

///u0066/n";  // backslash, letter f, new line

注意   轉義碼 /udddd(其中 dddd 是乙個四位數)表示 unicode 字元 u+dddd。還可識別 8 位 unicode 轉義碼:/udddd/udddd。

用 @ 引起來的字串以 @ 開頭,並用雙引號引起來。例如:

@"good morning"  // a string literal

用 @ 引起來的優點在於換碼序列「不」被處理,這樣就可以輕鬆寫出字串,例如乙個完全限定的檔名:

@"c:/docs/source/a.txt"  // rather than "c://docs//source//a.txt"

但實際上@"aaa" 和 "aaa"並不一定完全等同。

string str1 =

"21212112/u6bcf/u5ba2/u6237/u7aef/u53ea/u80fd/u542f/u52a8/u4e00/u4e2aquickpass/u9884/u5f55/u5165/u5e94/u7528,/u8bf7/u5173/u95ed/u6240/u6709/u5e94/u7528/u540e/u518d/u767b/u9646/u4f7f/u7528";

string str2 =

@"21212112/u6bcf/u5ba2/u6237/u7aef/u53ea/u80fd/u542f/u52a8/u4e00/u4e2aquickpass/u9884/u5f55/u5165/u5e94/u7528,/u8bf7/u5173/u95ed/u6240/u6709/u5e94/u7528/u540e/u518d/u767b/u9646/u4f7f/u7528";

messagebox.show(str1);和messagebox.show(str2);的結果是不同的,前者會將16進製製碼轉換成相應的字串內容,而後者輸出的是原樣的內容,沒有轉換。對於我們反編譯後得到的檔案,""中的中文及其他字元都是/u****這種格式,並且我們讀取檔案進來時得到的str是帶有@的,因此我們需要進行特殊處理後才能得到我們想要的內容資訊。

private void convertstr() );

string b = "";

string c = "";

string d = "";

for (int i = 0;i1 && a[i].substring(0,1) == "u")

a[i] = a[i].replace("u","0x");

c = convert.tochar(convert.toint32(a[i],16)).tostring(); }

b = b + c.tostring() + d; }

//messagebox.show(b);  

writer.write(b); }

catch(exception ex)

finally

messagebox.show("success") ;     }

最開始我是希望通過將結果解析成u****後再加上"/",然後直接轉換成字串,但是"/"是轉義符的一種,"//" +"u****"的結果是@"/u****",而不是"/u****",tostring()後得到的仍然不是我想要的結果,因此我最終是通過替代"u"為"0x",然後將"0x****"作為16進製制轉換為int32,再轉換成字元。

以上是我的一點摸索,能夠達到我想要的效果,將16進製製碼轉換成字串。應該還有其他方法,歡迎討論!

byte 與16進製制字串轉換

把位元組陣列轉換成16進製制字串 param barray return public static string bytestohexstring byte src for int i 0 i src.length i return stringbuilder.tostring 16 進製字串轉換...

字串與十進位制,16進製制轉換

問題1 講乙個十進位制數字的字串表示轉換成對應的整數。舉例 將 1234 轉換成整數1234.c 收藏 將字串s轉換成相應的整數 int atoi char s return n 問題2 將乙個十六進製制數的字串表示形式轉換成對應的整數。所謂的十六進製制數的字串形式是指字串只包含 0 9 或者 a ...

字串轉換為16進製制

問題 將乙個字串轉換為16進製制數,例如 12 轉換為0x12,12345678 轉換為0x12345678。注意 轉換前每乙個字元占用乙個位元組,轉換後兩個數字占用乙個位元組,如 12345678 占用8個位元組,轉換後占用四個位元組 0x12,0x34,0x56,x078.實現 include ...