温馨提示×

linux strings能搜中文吗

小樊
39
2026-10-14 06:36:01
栏目: 智能运维

简短回答:能,但要看情况,而且有局限。


1. strings 本身能搜中文吗?

可以。strings 默认是按字节串提取的,不关心编码。

例如一个二进制文件里包含 UTF-8 中文:

strings file.bin | grep "中文"

只要文件里的“中文”是 UTF-8 编码的连续字节,就能搜到。


2. 常见限制

✅ 编码必须连续

  • UTF-8 中文通常是连续字节 ✅
  • GBK 也是连续字节 ✅
  • 但如果字符串被分段存储 / 加密 / 压缩,就搜不到 ❌

✅ 默认最小长度

strings 默认只显示 ≥4 字节 的串:

strings file

中文 UTF-8 一个字 3 字节,两个字才 6 字节,一般没问题。

如果你想搜更短的:

strings -n 1 file

3. 更好用的方式(搜中文)

直接 grep 二进制

grep -a "中文" file.bin

-a 把二进制当文本处理, often 更直接。

指定编码搜索(GBK 例子)

strings file.bin | iconv -f GBK -t UTF-8 | grep "中文"

4. 总结

  • ✅ strings 能搜中文
  • ✅ 前提是:明文 + 连续字节 + 正确编码
  • ❌ 不能搜:加密、压缩、结构体分散存储的中文

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

0 踩