Utf 8 如何显示tcpdump捕获的utf8字符

Utf 8 如何显示tcpdump捕获的utf8字符,utf-8,tcpdump,Utf 8,Tcpdump,我的MySQL安装在远程主机上,我通过PHP PDO与MySQL交互。我想检查我执行的SQL语句。所以我在谷歌上搜索并使用tcpdump。以下是在网络上获得的代码 tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e ' while(<>) { chomp; next if /^[^ ]+[ ]*$/; if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMI

我的MySQL安装在远程主机上,我通过PHP PDO与MySQL交互。我想检查我执行的SQL语句。所以我在谷歌上搜索并使用tcpdump。以下是在网络上获得的代码

    tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
    while(<>) { chomp; next if /^[^ ]+[ ]*$/;
    if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
    if (defined $q) { print "$q\n"; }
    $q=$_;
    } else {
    $_ =~ s/^[ \t]+//; $q.=" $_";
    }
    }'
tcpdump-i eth0-s0-l-w-dst端口3306 | strings | perl-e'
while(){chomp;next if/^[^]+[]*$/;
if(/^(选择|更新|删除|插入|设置|提交|回滚|创建|删除|更改|调用)/i){
如果(定义为$q){打印“$q\n”;}
$q=$\;
}否则{
$=~s/^[\t]+/;$q.=“$”;
}
}'
但是我发现它可以显示utf8单词。 这篇帖子提醒我,我应该检查我的终端是否支持输出UTF-8。 但是我的终端支持utf8。 我也尝试了上面推荐的解决方案,但仍然不起作用。

tcpdump-lnpi低tcp端口80-s 16000-w-| tr-t'[^[:print:][]''
tcpdump-lnpi低tcp端口80-s 16000-w-|字符串-e s-n 1

所以我想知道如何显示tcpdump捕获的utf8字符

你得到了什么?问号?黑钻石?Mojibake?我得到了非英语世界的Mojibake,但是得到了英语单词和标点符号,比如“%”和“,”,在MySQL和一些客户端的上下文中正确地讨论了Mojibake(和其他东西)——关注非MySQL的建议。