简短结论:strings 本身是可以显示中文(UTF‑8 等编码)文本的,但它“不支持”中文的特殊处理,只是把文件里的字节序列当字符串打印出来。
strings 是什么strings 是 GNU binutils 里的工具,作用是:
从二进制或文本文件中提取“可打印字符序列”
默认规则:
默认情况下,strings 只认为 ASCII(0x20–0x7E)是可打印字符。
中文字符在 UTF‑8 中通常是 多字节(如 3 字节),不在 ASCII 范围,所以:
strings 支持中文-e 指定编码(不常用)strings -e S file.bin
但 -e 主要用于编码格式(如 16-bit Unicode),对 UTF‑8 中文帮助有限。
strings -n 1 file
这样即使中文被拆成字节,也能显示一部分。
iconv / grepstrings file | iconv -f UTF-8 -t UTF-8 -c
或:
strings file | grep -P '[\x{4e00}-\x{9fff}]'
如果目的是“看中文内容”,更推荐:
xxd | grepbgrepstrings + less(UTF‑8 终端)radare2 / Ghidra$ echo "测试中文test" > a.txt
$ strings a.txt
test
$ strings -n 1 a.txt
测
试
中
文
t
e
s
t
| 问题 | 答案 |
|---|---|
Debian 的 strings 支持中文吗 |
✅ 能显示,但不“理解”中文 |
| 默认能看到中文吗 | ❌ 经常看不到 |
| 解决办法 | 降低 -n、配合编码工具、或换工具 |
如果你有具体文件类型(ELF / 固件 / 日志),我可以给你更精确的命令。