我知道有很多这样的问题,但它们似乎并不像我期望的那样有效,或者可能我不知道如何使用它们。
基本上,我该如何转换:
65 78 61 6d 70 6c 65
变成这样:
example
基本上与十六进制编辑器类似(HxD、Microhex等)
这样做的原因是因为我希望基于十六进制数据写入数据,而不使用
using (BinaryWriter bw = new BinaryWriter(File.Open("file.txt", FileMode.Append)))
{
bw.Write("foo bar"); // Here we are writing binary data normally, but not what I would want
}
2条答案
按热度按时间dffbzjpn1#
您所看到的是使用ASCII(或者可能是UTF-8)编码转换成字节的文本。
因此,您可以使用一个合适的
Encoding
对象将其返回。注意,您处理的是文件或流,有许多工具在内部使用
Encoding
将字符串转换为字节,反之亦然:File.ReadAllText
/File.ReadAllLines
等在内部使用Encoding
StreamWriter
/StreamReader
允许您从流读取字符串或将字符串写入流,并使用Encoding
将这些字符串转换为字节File.OpenText
/File.CreateText
/ etc对文件执行相同的操作zdwk9cvp2#
另一个解决方案是
cast byte to char
:您还可以使用linq将
byte
数组转换为char
数组。并使用String.Join()将字符进行圆锥形转换