我有以下代码从HEX转换为ASCII。
//Hexadecimal to ASCII Convertion
private static string hex2ascii(string hexString)
{
MessageBox.Show(hexString);
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= hexString.Length - 2; i += 2)
{
sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber))));
}
return sb.ToString();
}
输入hexString = D3FCC4A7B6FABBB7
输出return =Óüħ¶ú»·
我需要的输出是狱魔耳环,但我得到了Óüħ¶ú»。 如何让它显示正确的字符串?
答案 0 :(得分:2)
首先,将十六进制字符串转换为byte[]
,例如使用How do you convert Byte Array to Hexadecimal String, and vice versa?处的代码。然后使用System.Text.Encoding.Unicode.GetString(myArray)
(使用正确的编码,可能不是Unicode,但从您的示例判断它是16位编码,顺便说一下,它不是“ASCII”,这是7位)将其转换为一个字符串。