下面是代碼(十六進制轉換爲十進制)我正在努力解決.. 我發現了錯誤,我在代碼中已經註釋了位置..C#編碼:十六進制到十進制&字符編碼
請提供一個解決方案,以糾正..
static void Main(string[] args)
{
byte[] byteData;
int n;
byteData = GetBytesFromHexString("001C0014500C0A5B06A4FFFFFFFFFFFFFFFFFFFFFFFFFFFF");
n = byteData.Length;
Console.WriteLine(n);
string s = System.Text.Encoding.UTF8.GetString(byteData, 0, n); //error
Console.WriteLine(s);
Console.ReadLine();
}
public static byte[] GetBytesFromHexString(string hexString)
{
//MessageBox.Show("getbytes ");
if (hexString == null)
return null;
if (hexString.Length % 2 == 1)
hexString = '0' + hexString; // Up to you whether to pad the first or last byte
byte[] data = new byte[hexString.Length/2];
for (int i = 0; i < data.Length; i++)
{
data[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
Console.WriteLine(data[i]);
}
什麼我得到的輸出是: 「\ 0 \ 0 P \˚F\ n [ 「 轉換後的十進制值未被編碼。
UPDATE: 預期輸出爲 「0 28 0 20 80 12 10 91 6 164 255 255 255 255 255 255 255 255 255 255 255 255 255 255」
你從'Console.WriteLine(S)有什麼期望輸出;'? –
檢查此鏈接 http://stackoverflow.com/questions/74148/how-to-convert-numbers-between-hexadecimal-and-decimal-in-c –
我得到System.Byte []這是沒有得到編碼.. – user3222857