字串為 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 ...