温馨提示×

linux strings可以搜中文吗

小樊
39
2026-10-08 09:21:32
栏目: 智能运维

可以的,但需要了解一些细节和注意事项。

1. 本质上:strings 是按“可打印字符序列”来提取的 strings 默认会提取文件中连续的可打印字符(默认至少是 4 个字符的序列)。
中文在文件里通常以 UTF-8 / GBK 等编码的字节序列 存在,而这些字节很多都落在“可打印”范围内,所以是可以被搜到的。

例如:

strings test.bin | grep 中文

2. 编码很关键

  • 如果文件是 UTF-8 中文,strings 可能把中文字符“切断”(因为不是每个字节都是 ASCII)
  • 如果文件是 GBK / GB2312,情况类似,但字节范围不同

所以:

  • 能“看到”中文
  • 但不保证完整、连续、准确

3. 更稳妥的做法

✅ 搜中文关键词

strings file | grep '错误'

✅ 指定最小长度,避免太碎

strings -n 2 file | grep '中文'

✅ 直接搜字节(更准确)

grep -a '中文' file

或

iconv -f utf-8 -t utf-8 file | strings | grep '中文'

4. 如果文件不是 UTF-8 可以先转码:

iconv -f gbk -t utf-8 file | strings | grep '中文'

总结

  • ✅ strings 可以搜中文
  • ⚠️ 效果受编码影响
  • ✅ 配合 grep / iconv 更可靠

如果你是在二进制里找中文字符串(比如程序、固件),我也可以给你更针对性的命令。

0 踩