我正在尝试使用Visual Studio Community 2017在c#中将十六进制字符串转换为ASCII。 我的十六进制字符串如下所示
070196000008220031CE4745542073776964FD48
当我将其转换为ASCII时,如下所示
我的困惑是为什么它为十六进制“ 07”显示ASCII“ \ a”?它应该是 。十六进制“ 01”的ASCII值应为,但显示“ \ u0001”。 ASCII控制字符和扩展ASCII字符都相同。
有人可以解释一下!我是否想念任何东西以及如何得到那样的东西。
我用来转换hextoascii的代码
public string ConvertHextoASCII(String hexString)
{
try
{
string ascii = string.Empty;
for (int i = 0; i < hexString.Length; i += 2)
{
String hs = string.Empty;
hs = hexString.Substring(i, 2);
int decval = System.Convert.ToInt32(hs, 16);
char character = System.Convert.ToChar(decval);
ascii += character;
}
return ascii;
}
catch (Exception ex) { Console.WriteLine(ex.Message); }
return string.Empty;
}
谢谢。
答案 0 :(得分:1)
如果某些字符位于字符串文字中,则可以用\u1234
以外的其他方式进行转义。 \a
对应于“响铃(警告)”字符-Unicode(和ASCII)代码点7(0x0007)。可能的话,调试器似乎更喜欢这些替代转义而不是\u1234
格式。 Here's the full list of escape sequences in C# string literals.