我正试着给自己发一些带有德语变音的电子邮件,比如ä,ü,ó。
这是我使用的命令:

echo "ä ü ö" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "test ä ü ö" [email protected]

但我在标准的Android电子邮件客户端上得到了这个:
[email protected]
test ?? ?? ??
ä ü ö

如果我通过Thunderbird或类似的方式给自己写一封邮件,效果会很好。
有人知道怎么解决这个问题吗?

最佳答案

MIME(Content-Type:)头指定电子邮件正文的编码。
[顺便说一下,您的MIME(内容类型)头不完整]
电子邮件头有另一种编码(RFC-2047)(Subject:From:,…)。
下面请找到链接来回答“perl oneliner”进行这种转换的问题。
https://superuser.com/a/972248/209289
如果使用基于utf-8的区域设置,下面的脚本应该可以工作。
[它似乎可以与LANG=en_US.UTF-8]

#!/bin/sh
SUBJECT="test ä ü ö"
SUBJECT=`perl -MEncode -CA -e 'print Encode::encode("MIME-Q",$ARGV[0])' "$SUBJECT"`

/usr/sbin/sendmail -i -- [email protected] <<END
Subject: $SUBJECT
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

ä ü ö
END

关于android - 如何以正确的方式将UTF8格式化为Subject Header?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37068990/

10-12 03:46