2014-09-19 164 views
0

我需要將十六進制字符串(從遊戲服務器通過套接字接收)轉換爲ascii(或任何其他我認爲可行的格式)。c#將十六進制轉換爲ASCII

我遇到的問題是,每次我嘗試顯示轉換後的字符串,它是空的,但是,此網站:Click!工作得很好轉換它。

008300DD0676657273696F6E3D25326674672532662B53746174696F6E2B3133266D6F64653D736563726574267265737061776E3D3026656E7465723D3126766F74653D302661693D3126686F7374266163746976655F706C61796572733D3026706C61796572733D3132267265766973696F6E3D64666639623862646165323234613332366364313166643566353431326638346463643565346237267265766973696F6E5F646174653D323031342D30382D32322661646D696E733D302667616D6573746174653D31266D61705F6E616D653D4D65746153746174696F6E00 

我試過無數方法:從服務器接收

例六角這是我目前使用的一個:

 public static string Hex2Ascii(string hexString){ 
     StringBuilder sb = new StringBuilder(); 

     for (int i = 0; i < hexString.Length; i += 2) 
     { 
      string hs = hexString.Substring(i, 2); 
      sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber)))); 
     } 

     return sb.ToString(); 
    } 

預期的結果是這樣的:

ƒÝversion=%2ftg%2f+Station+13&mode=secret&respawn=0&enter=1&vote=0&ai=1&host&active_players=0&players=12&revision=dff9b8bdae224a326cd11fd5f5412f84dcd5e4b7&revision_date=2014-08-22&admins=0&gamestate=1&map_name=MetaStation 
+1

如何讓您向我們展示您正在使用的代碼來嘗試轉換它?你期望輸出是什麼? – 2014-09-19 04:49:47

+0

添加了您的請求。 – DRenold 2014-09-19 04:54:19

回答

1

您的示例字符串似乎首先有一個空字符,它會在您之前終止您的字符串甚至已經開始。如果您從輸入中刪除「008300」前綴,它似乎正在工作。

+0

heh。顯然它代表了一些奇怪的字符,它將終止字符串,無論現在它的工作方式,謝謝! – DRenold 2014-09-19 05:17:59