我正在尝试使用enscript
Mutt 打印 PDF,并使用大引号解决字符编码问题。因此,一封电子邮件的文本如下:
“very dirty”
we’re
出来为:
â\200\234very dirtyâ\200\235
weâ\200\231re
我的打印脚本目前是这样的:
#!/usr/bin/env sh
INPUT="$1" PDIR="$HOME/Desktop" OPEN_PDF=evince
tmpfile="`mktemp $PDIR/mutt_XXXXXXXX.pdf`"
enscript --font=Courier8 $INPUT -2r --word-wrap --fancy-header=mutt -p - 2>/dev/null | ps2pdf - $tmpfile
$OPEN_PDF $tmpfile >/dev/null 2>&1 &
sleep 1
rm $tmpfile
有没有办法在发送之前替换大引号enscript
?或者我可以使用的字符编码来处理引号?
如果有另一种(更好?)方法从 Mutt 打印为 PDF,我洗耳恭听。我只需要确保我的报价不会被搞乱。
答案1
您可能想要做的是sed
在引号进入 enscript 之前更改它们。
这会将花哨的引号更改为标准的"
和'
。转换后您将无法取回它们。为此,您可以在 enscript 行上方插入如下所示的行:
sed -i "s/[”“]/\"/g; s/[‘’]/'/g" $tmpfile
您也许还可以使用iconv
将文本转换为其他编码,但我对该程序了解不多。可能值得研究一下。