我在HEX的另一篇帖子中使用了这段代码,并且我的Unicode值x0020的前缀是一个无效的空字符。并且它不等同于VB转换,其中前导00被修剪并且它给出了实际值。
这是剧本:
public static string ConvertHex(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);
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;
}
我更改了行
char character = System.Convert.ToChar(decval);
ascii += character;
到这个
ascii += (decval > 0) ? System.Convert.ToChar(decval) : "";
这对我来说很好。我的问题是为什么这是领先的?
如果有一个更简单的解决方案来修剪它?