search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

C# HEX to ASCII String [GOOGLE: HEX to ASCII] – jashliao部落格

C# HEX to ASCII String [GOOGLE: HEX to ASCII]



資料來源: https://stackoverflow.com/questions/5613279/c-sharp-hex-to-ascii


驗證網頁: https://www.rapidtables.com/convert/number/hex-to-ascii.html


/*
//test code
byte[] bModelName = new byte[24];
Array.Copy(byBuf, 12, bModelName, 0, bModelName.Length);//5359535238362D4831202020 0853 0000 △6D6A
m_StrReaderModelName = "";
m_StrReaderModelName =  System.Text.Encoding.Default.GetString(bModelName);
m_StrReaderModelName = CS_Chip.HexStr2AsciiStr(m_StrReaderModelName);
*/

    class CS_Chip
    {
        public static string HexStr2AsciiStr(String hexString)
        {
            //5359535238362D4831202020 -> "SYSR86-H1   "
            try
            {
                string ascii = string.Empty;

                for (int i = 0; i < hexString.Length; i += 2)
                {
                    String hs = string.Empty;

                    hs = hexString.Substring(i, 2);
                    uint decval = System.Convert.ToUInt32(hs, 16);
                    char character = System.Convert.ToChar(decval);
                    ascii += character;

                }

                return ascii;
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }

            return string.Empty;
        }

        public static bool String2ByteArray(String StrData, byte[] pdata, int iLen = 16)//字串轉陣列
        {
            bool blnResult = true;
            if (StrData.Length >= (iLen * 2))
            {
                int j = 0;
                //for (int i = 0; i < StrData.Length; i += 2)
                for (int i = (StrData.Length - 2); i >= 0; i -= 2)
                {
                    try
                    {

                        int buf = Convert.ToInt32(StrData.Substring(i, 2), 16);
                        pdata[j] = Convert.ToByte(buf);
                        j++;
                    }
                    catch
                    {
                        blnResult = false;
                        break;
                    }
                }
            }
            else
            {
                blnResult = false;
            }
            return blnResult;
        }

        public static bool ByteArray2String(byte[] pdata, ref String StrData,bool blnReverse=true)//陣列轉字串
        {
            StrData = "";
            bool blnResult = true;

            if(blnReverse == true)
            {
                Array.Reverse(pdata);
            }

            try
            {
                for(int i=0;i< pdata.Length;i++)
                {
                    StrData+= Convert.ToString(pdata[i], 16).PadLeft(2, '0') + " ";
                }
            }
            catch
            {
                blnResult = false;
            }
            return blnResult;
        }

    }


熱門推薦

本文由 jashliaoeuwordpress 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦