温馨提示×

linux strings可以查中文吗

小樊
45
2026-09-17 15:32:54
栏目: 智能运维

可以,strings 本身是可以查到中文(中文字符)的,但有几个关键点你要注意:


1️⃣ 原理上:能查到

strings 的作用是从二进制文件中提取“可打印字符序列”
中文在文件中通常以如下编码存在:

  • UTF-8(最常见,Linux 默认)
  • GBK / GB2312(Windows 程序、老软件)
  • UTF-16(Windows 某些程序)

只要字符在文件里是“连续可打印字节”,strings 就能提取出来。


2️⃣ UTF-8 中文(最常见 ✅)

strings test.bin | grep 中文

✔ 基本没问题
✔ Linux / 开源软件 / 安卓 so / ELF 常见


3️⃣ GBK / GB2312 中文(⚠ 需要注意)

strings 不关心编码,它只按字节提取:

strings file.exe

如果你看到的是乱码(比如 ����),那通常是 GBK 编码。

解决方式

iconv 转码:

strings file.exe | iconv -f GBK -t UTF-8

4️⃣ UTF-16 中文(⚠ 默认查不到)

Windows 程序常把中文字符串存成 UTF-16(宽字符)。

方法一:用 -e 参数

strings -e l file.exe   # UTF-16LE
strings -e b file.exe   # UTF-16BE

方法二:配合 grep

strings -e l file.exe | grep 中文

5️⃣ 常用推荐参数

strings -n 4 file      # 最小长度 4
strings -e l file      # 宽字符
strings -a file        # 扫描整个文件(不止 .data)

6️⃣ 总结一句话

Linux 的 strings 可以查中文
⚠ 但要看编码:

  • UTF-8 → 直接查
  • GBK → 转码
  • UTF-16 → 加 -e l

如果你有具体文件类型(ELF / exe / so / bin),我可以给你更精确的命令。

0