C# HEX to ASCII String [GOOGLE: HEX to ASCII]
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;
}
}
One thought on “C# HEX to ASCII String [GOOGLE: HEX to ASCII]”
C# int 轉 HEX 字串(\XOO)
using System;
class Program
{
static void Main()
{
int num = 255;
Console.WriteLine(@"int2\x : " + num + " ->" + string.Format(@"\x{0:x2}", 255)); //255 -> \xff
//---
int nL = 45;
int nH = 0;
string strCmd = "\x1d" + "$" + (char)nL + (char)nH; // 垂直起始位置 (nL+(nH*256))*0.125=60*0.125=7.5mm
byte[] data = Encoding.GetEncoding("big5").GetBytes(strCmd);
}
}