温馨提示×

怎样用linux strings看乱码

小樊
44
2026-10-08 09:13:32
栏目: 智能运维

在 Linux 下用 strings 看“乱码”,通常是因为文件编码不对或提取出来的不是文本而是二进制片段。下面按常见情况给你讲怎么用、以及怎么让“乱码”变可读。


一、strings 是干什么的

strings 用来从二进制文件里提取“看起来像字符串”的内容(默认长度 ≥ 4 的可打印字符)。

strings file.bin

如果你看到的是乱码,一般有两种原因:

  1. 文件本身是 非 UTF‑8 编码(如 GBK、ISO‑8859‑1)
  2. 提取到的本来就不是文本(正常情况)

二、先看编码(关键)

先判断文件编码:

file file.bin
# 或
enca file.bin

常见结果:

  • UTF-8
  • ISO-8859 text
  • Non-ISO extended-ASCII(通常是 GBK)

三、strings + 编码转换(最常用)

1️⃣ 如果是 GBK 乱码

strings file.bin | iconv -f gbk -t utf-8

如果不确定编码,可以试:

strings file.bin | iconv -f GB18030 -t UTF-8

2️⃣ 如果是 ISO‑8859‑1

strings file.bin | iconv -f ISO-8859-1 -t UTF-8

四、strings 常用参数(避免误判)

指定最小长度

strings -n 6 file.bin

只提取某一段(配合 od / hexdump)

strings -e l file.bin   # 16-bit little endian
strings -e b file.bin   # 16-bit big endian

五、乱码不是编码问题?试试这些

1️⃣ 用 hexdump 看原始内容

hexdump -C file.bin | less

2️⃣ 用 less 直接看

less file.bin
# 然后按 v 或 :e

3️⃣ 如果是中文程序,直接运行看输出

有些“乱码”只在 strings 里,不代表文件坏了。


六、实战例子

strings app.exe | iconv -f gbk -t utf-8 | grep 用户名

七、总结一句话

strings 看到乱码,99% 是编码问题,用 iconv 转一下就好。

如果你愿意,可以把:

  • 文件类型
  • file 命令输出
  • 乱码截图或样例

发出来,我可以直接告诉你该用哪条命令。

0 踩