温馨提示×

linux strings能看中文吗

小樊
37
2026-09-14 14:40:27
栏目: 智能运维

简短回答:能,但取决于文件里中文的编码方式,以及你用的参数。

下面详细说一下:

1. strings 默认能做什么

strings 的作用是:从二进制/数据文件中提取“可打印字符序列”。

  • 对 ASCII 字符:完全没问题
  • 对 UTF-8 中文:✅ 通常可以直接看到
    (因为 UTF-8 的中文里包含大量 ≥ 0x80 的字节,新版本 strings 默认会输出)

例如:

strings test.bin

如果文件里是 UTF-8 编码的“你好”,一般能看到:

你好

2. 常见问题:看不到中文的原因

✅ 原因一:编码是 GBK / GB2312

老程序、Windows 程序常用 GBK:

  • strings 可能显示乱码或截断
  • 解决:
strings file | iconv -f gbk -t utf-8

✅ 原因二:中文被拆成短字节

strings 默认只输出 长度 ≥ 4 的连续可打印字符:

strings -n 1 file

可显示更短内容(包括单字)


3. 推荐用法(看中文更稳)

strings -e S -n 2 file

或

strings -n 1 file | iconv -f gbk -t utf-8 2>/dev/null

4. 如果你是想“反编译/分析程序里的中文”

  • ELF / 二进制:✅ strings 可用
  • Java:javap / jad
  • Android:apktool

总结

✅ Linux 的 strings 能看中文
⚠️ 但:

  • UTF-8:直接看
  • GBK:需要 iconv
  • 太短的中文:加 -n 1

如果你愿意,可以把文件类型或示例输出发我,我可以帮你写最合适的一条命令。

0 踩