以html字符串编码的特殊字符

时间:2018-03-20 07:38:22

标签: html powershell encoding smtp

我使用以下代码使用PowerShell脚本发送邮件:

undefined variable vendorId

但它通过电子邮件给我输出:

  

测试beigefügtZusätzlichverfügbar。 äüüß

你有任何想法如何解决这个问题吗?

修改

$HTMLmessage = "test beigefügt Zusätzlich verfügbar.   äöüß"

Send-MailMessage -From $fromemail -To $users -Subject "Test through ps" -Encoding ([System.Text.Encoding]::UTF8) -BodyAsHTML -Body $HTMLmessage -Priority Normal -SmtpServer $server ;

但它给了我相同的o / p。

1 个答案:

答案 0 :(得分:2)

我认为你在这里误解了这个概念。

不在 powershell smtp 中的问题。从代码的外观来看,它似乎是 HTML 编码问题。问题是您的邮件的接收方不理解您在HTML邮件中使用不同的编码。

尝试为您的内容添加编码。

ISO-8859-1

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

UTF-8

<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">

使用您的脚本:

$HTMLMessage = '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>'
$HTMLMessage += 'test beigefügt Zusätzlich verfügbar.   äöüß'

仅在通过send-mailmessage发送电子邮件之后。

Edit1&amp;&amp; 2

啊,您之前没有将邮件正文转换为html。 -Encoding ([System.Text.Encoding]::UTF8)就足够了,你可能是对的。 显然,我太快了。让我们做好。

$HTMLMessage = '<html>'
$HTMLMessage += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>'
$HTMLMessage += '<body>test beigefügt Zusätzlich verfügbar. äöüß</body>'
$HTMLMessage += '</html>'

send-mailmessage -from $fromemail -to $users -subject "Test through ps" -Encoding ([System.Text.Encoding]::UTF8) -BodyAsHTML -body $HTMLmessage -priority Normal -smtpServer $server

从我们的讨论中看来,您的文件编码错误。如果你有普通的 UTF8而没有签名。源文件应该是带有签名的 UTF-8 ,它也适用于带有签名的 UTF16BE