You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统中读取Linux生成的文本文件?

如何在Windows系统中读取Linux生成的文本文件?

嘿,我来帮你搞定这个问题!你遇到的乱码其实不是编码不匹配的问题,而是top命令的输出里藏了ANSI终端转义序列——就是报错里提到的0x1B(ESC字符),这些是Linux终端用来显示颜色、高亮、光标移动的控制代码,Windows的普通文本编辑器完全不认识它们,所以才会显示成乱码。

先给你理清为什么之前的方法没用:

  • Notepad++转UTF-8:这是用来解决编码不匹配问题的,但你的问题根本不是编码问题,所以自然起不到作用;
  • dos2unix:这个工具专门用来转换换行符(把Linux的LF换成Windows的CRLF),对终端控制字符完全无能为力,所以它会提示你文件里有二进制符号。

下面给你几个可行的解决方案,按需选择就行:

方案1:在Linux生成文件时直接清理控制字符

如果还能重新生成文件,直接在Linux里把转义序列过滤掉再保存,这样Windows打开就是干净的内容:

top -b -n 1 | sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' > clean_top.txt

解释一下:

  • top -b:启用批处理模式,让top输出适合保存到文件的内容,而非终端交互格式;
  • -n 1:只输出一次top的快照,避免持续输出;
  • sed命令:专门用来删掉所有ANSI转义序列,确保输出纯文本。

方案2:在Windows里处理已有的乱码文件

如果已经有了带乱码的文件,用Windows的PowerShell就能处理:

(Get-Content .\your_file.txt) -replace '\x1b\[[0-9;]*[a-zA-Z]', '' | Set-Content .\clean_file.txt -Encoding UTF8

运行这条命令后,clean_file.txt就是完全可读的纯文本了。

方案3:用支持终端转义序列的编辑器打开

不想处理文件的话,可以用能解析这些控制字符的编辑器:

  • Notepad++:安装「ANSI Escape Sequence」插件,它会把转义序列转换成对应的格式显示,而不是乱码;
  • VS Code:安装类似「ANSI Colors」的插件,同样能正确解析并显示终端格式的内容。

备注:内容来源于stack exchange,提问作者TeaViris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:18:17