可以的,但需要了解一些细节和注意事项。
1. 本质上:strings 是按“可打印字符序列”来提取的
strings 默认会提取文件中连续的可打印字符(默认至少是 4 个字符的序列)。
中文在文件里通常以 UTF-8 / GBK 等编码的字节序列 存在,而这些字节很多都落在“可打印”范围内,所以是可以被搜到的。
例如:
strings test.bin | grep 中文
2. 编码很关键
strings 可能把中文字符“切断”(因为不是每个字节都是 ASCII)所以:
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 更可靠如果你是在二进制里找中文字符串(比如程序、固件),我也可以给你更针对性的命令。