如何在 Windows 7 中本机查看文件的二进制内容?(可能吗?)

如何在 Windows 7 中本机查看文件的二进制内容?(可能吗?)

我有一个略大于 500MB 的文件,它引起了一些问题。

我认为问题出在使用的行尾 (EOL) 约定上。我想查看未解释的原始格式 (1) 的文件,以确认文件的 EOL 约定。

如何使用 Windows 7 内置程序查看文件的“二进制”?我希望避免下载任何额外内容。

(1) 我和同事在文本编辑器中打开了该文件,它们显示的行与预期一致。但这两个文本编辑器都会打开具有不同 EOL 约定的文件并自动解释它们。(TextEdit 和 Emacs 24.2。对于 Emacs,我head -c4096在 Linux 机器上创建了第二个文件,其中只有前 4K 字节,并从 Windows 机器中打开了该文件。

我尝试在 Emacs 中使用十六进制模式,但是当我进入十六进制模式并返回文本模式时,缓冲区的内容已经改变,在每行末尾添加了一个可见的 ^M,所以我目前不相信这一点。

我认为问题可能出在使用的行尾字符上。我和同事尝试过的编辑器 (1) 会自动识别行尾约定并向我们显示行。根据其他证据,我认为 EOL 约定只是回车符。(2) 仅返回。

要知道文件中实际包含的内容,我想查看文件的二进制内容,或者至少查看文件的几千个字节,最好是十六进制,尽管我可以使用十进制或八进制。如果只有 1 和 0,看起来会很粗糙。

更新

除了建议的那个之外DEBUG,下面的所有答案在某种程度上都有效。我已将每个答案都投了赞成票,认为它们很有帮助。我的问题格式不正确。在测试每个建议的解决方案时,我发现我真正想要的是并排查看十六进制和文本内容,并且我希望当我将光标放在某个东西上时,无论是字节值还是文本字符,另一边的匹配内容都会突出显示。

当 Emacs hexl-mode 开始“正确”工作时,我实际上解决了我的问题。所以我最终没有使用任何这些答案,只是测试它们。(真的应该调查奇怪的 Emacs 行为并提交错误报告。)

答案1

你需要一个“十六进制编辑器”。我用过“Hex Editor Neo”好多年了,它非常好用。它有免费和付费版本。(我相信还有其他类似的工具可用。)

答案2

如果你有 powershell 5.0 或更高版本,则可以使用powershell内置函数Format-Hex

PS:21 C:\Temp >Format-Hex application.exe

            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

00000000   42 4D 5E 00 00 00 00 00 00 00 36 00 00 00 28 00  BM^.......6...(. 
00000010   00 00 0A 00 00 00 01 00 00 00 01 00 20 00 00 00  ............ ... 
00000020   00 00 00 00 00 00 C4 0E 00 00 C4 0E 00 00 00 00  ......Ä...Ä..... 
00000030   00 00 00 00 00 00 B7 59 71 FF B7 59 71 FF B7 59  ......•Yq.•Yq.•Y 
00000040   71 FF B7 59 71 FF B7 59 71 FF B7 59 71 FF B7 59  q.•Yq.•Yq.•Yq.•Y 
00000050   71 FF B7 59 71 FF B7 59 71 FF B7 59 71 FF        q.•Yq.•Yq.•Yq.

答案3

内置,快速而粗糙:启动powershell,执行:

gc -encoding byte -TotalCount 100 "your_file_path" |% {write-host ("{0:x2}" -f $_) -noNewline " "}; write-host

总数是您想要从文件中读取的字节数。

谷歌“powershell hexdump”可获得更加完善/可行的版本。

另一个使用变量的例子:

$s=""; gc -enc byte FILE | % { $s += '{0:x2}' -f $_ }; $s

如果您有 Windows Resource Kit Tools(不是完全内置的,但接近),您也可以使用名为的 cmd 行实用程序list.exe。这是一个具有十六进制模式的小型编辑器。专为处理大文件而设计:

List 文本文件工具(List)是一个命令行工具,用于显示和搜索一个或多个文本文件。与其他文本显示工具不同,List 在打开时不会将整个文件读入内存。它允许用户以十六进制格式编辑文本文件。

列表对于远程显示文本或日志文件以及管理员担心系统性能下降的服务器上使用很有用。

答案4

由于 Windows 7 内置了 dotnet framework 3.5,因此您将拥有内置的 C# 编译器,因此您可以获取例如来自http://illegalargumentexception.blogspot.co.uk/2008/04/c-file-hex-dump-application.html然后使用编译

  \windows\Microsoft.NET\Framework\v3.5\csc printhex.cs 

最后你应该得到一个 printhex.exe,它可以同时显示十六进制和 ascii 字符。

相关内容