![如何在 macOS 上使用命令行解码 quoted-printable 文件?](https://linux22.com/image/1622888/%E5%A6%82%E4%BD%95%E5%9C%A8%20macOS%20%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%A7%A3%E7%A0%81%20quoted-printable%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我知道可以使用 JavaScript 或 PHP 来完成,但是是否有可以执行该操作的命令行实用程序?
答案1
perl 单行代码:
echo "$input" | perl -MMIME::QuotedPrint -0777 -nle 'print decode_qp($_)'
MIME::QuotedPrint 是核心 perl 模块,因此无需任何额外安装即可工作。
答案2
对于 Python 3.x:(在 Cygwin 上测试)
python -c 'import sys,quopri;quopri.decode(sys.stdin,sys.stdout.buffer)' < infile > outfile
答案3
这就是我所寻找的(在维基百科)。
$ brew install qprint
$ echo "J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font =
vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est par essence qu'=
un moyen, et te trompant ainsi sur la route =C3=A0 suivre les voil=C3=A0 bi=
ent=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire ils te f=
abriquent pour te la vendre une =C3=A2me vulgaire." | qprint -d
J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font vite pédagogues et t'enseignent comme but ce qui n'est par essence qu'un moyen, et te trompant ainsi sur la route à suivre les voilà bientôt qui te dégradent, car si leur musique est vulgaire ils te fabriquent pour te la vendre une âme vulgaire.
答案4
实际上有一个简单的命令行实用程序可以实现这一点。这样做的好处是,您不需要任何成熟的第三方编程语言,也不需要承担所有相关责任。
它叫做tcucodec
。我不知道 MAC 是否支持,但是对于 Debian 用户,你可以使用以下命令安装它:
apt install tokyocabinet-bin
它有多种解码器和编码器。请参阅手册页了解更多详细信息。对于您的特定问题,要编码使用:
echo "Some German umlauts: äöüÄÖÜ and the ß" | tcucodec quote
输出结果如下:
Some German umlauts: =C3=A4=C3=B6=C3=BC=C3=84=C3=96=C3=9C and the =C3=9F
要解码,请-d
在后面添加一个开关quote
:
echo "Some German umlauts: =C3=A4=C3=B6=C3=BC=C3=84=C3=96=C3=9C and the =C3=9F" | tcucodec quote -d
返回原始文本:
Some German umlauts: äöüÄÖÜ and the ß
文本从其字符集按字节转换而来。如您所见,变音符号是 2 字节 utf8 字符,因此产生两个编码字符。