为了在 IMAP 邮件目录中自动通过命令行创建数百个目录,我需要能够将 UTF-8 字符串即时转换为 UTF-7-IMAP。
在php中,我找到了一种用字符串作为参数传递的方法来做到这一点,但它不是很实用,并且需要安装php。
<?php
echo mb_convert_encoding($argv[1], "UTF7-IMAP", "UTF8");
?>
Iconv 似乎不知道 UTF-7-IMAP。
我找到了一种语法,可以让你做相反的事情:
echo "Sant&AOk-" | tr "&" "+" | iconv -f UTF-7 -t UTF-8
Santé
但这是不可逆的(最后的“-”丢失了)
echo "Santé" | iconv -f UTF-8 -t UTF-7 | tr '+' '&'
Sant&AOk
我在互联网上几乎找不到这方面的信息。
编辑:
我发现这工作正常:
perl -CSA -MEncode::IMAPUTF7 -le 'print Encode::IMAPUTF7::encode("IMAP-UTF-7", shift)' "Santé"
但如何创建管道呢?
echo "Santé" | perl ...