簡體   English   中英

c#將十六進制轉換為ASCII

[英]c# Convert Hex to ASCII

我需要將十六進制字符串(通過套接字從游戲服務器接收到)轉換為ascii(或我認為可以工作的任何其他格式)。

我遇到的問題是,每次嘗試顯示轉換后的字符串時,它都是空的,但是,此網站: 單擊! 在轉換時效果很好。

從服務器收到的示例十六進制:

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

您的示例字符串似乎先有一個null-char,它將在您的字符串甚至開始之前將其終止。 如果從輸入中刪除“ 008300”前綴,則它似乎正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM