在将文本交给 enscript 之前如何处理文本? (或者如何将 UTF8 Mutt 消息打印为 PDF?)

在将文本交给 enscript 之前如何处理文本? (或者如何将 UTF8 Mutt 消息打印为 PDF?)

我正在尝试使用enscriptMutt 打印 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

显然enscript不支持UTF-8文件

您可能想要做的是sed在引号进入 enscript 之前更改它们。

这会将花哨的引号更改为标准的"'。转换后您将无法取回它们。为此,您可以在 enscript 行上方插入如下所示的行:

sed -i "s/[”“]/\"/g; s/[‘’]/'/g" $tmpfile

您也许还可以使用iconv将文本转换为其他编码,但我对该程序了解不多。可能值得研究一下。

相关内容