2014-04-24 26 views
1

我想我有一個小問題,因爲我混淆了我的術語。C#將十六進制轉換爲字符串

我需要包裝一個字符串的前面有一個垂直tab(char)11或(char)0x0b,最後是一個(char)28或(char)0x1c。

我的困惑部分是我不明白11和0x0b之間的區別是什麼。我相信一個是ascii,一個是hex,但我不積極。所以基本上我需要做

string response = (char)0x0b + "message" + (char)0x1c; 

雖然這似乎並不奏效。

+0

「這似乎不起作用」是什麼意思?它不會編譯?它不會產生您期望的輸出嗎? –

+0

我的意思是我將響應發送回服務器,並且不會將其識別爲有效響應。 – Jhorra

回答

1

我混亂的一部分是我不明白11和0x0b之間的區別是什麼。

沒有區別。這兩個代表相同的數學編號十一,用不同的基數表示(基數爲0x0B,基數爲10,代表11)。

C#爲垂直選項卡提供轉義序列 - \v,因此您可以編寫來代替(char)0x0b0x1C沒有轉義序列,但可以使用十六進制轉義序列來表示它,如\x1C

修改後的代碼應該是這樣的:

string response = '\v' + message + 'x1C'; 

我刪除了雙引號"message",假設它代表了你的代碼已經在返回響應之前準備一個字符串變量。

相關問題