2013-06-25 13 views
0

有人可以告诉我,为什么这段代码不工作? 邮件被发送,但字符被压缩。带有UTF-8的ASPEmail产生混乱的字符

“日本语” 变成了 “æ-¥æœ¬èªž”

“テスト日本语AOU” 变成了 “ハ†ã,¹ãƒã€€℃〜¥æœ¬èªžÃ¤Ã¶Ã¼”

<% 

    Session.CodePage = 65001 ' UTF-8 code 

%> 

<!DOCTYPE html> 

<html> 
<head> 
    <title>MAIL TESTER</title> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
</head> 

<body> 

<% 

    strSubject = "日本語" 
    strBody = "テスト 日本語 äöü" 

    Set objEmail = Server.CreateObject("Persits.MailSender") 

    objEmail.Host = "..." 
    objEmail.From = "..." 
    objEmail.FromName = "..." 
    objEmail.AddAddress "..." 

    objEmail.Username = "..." 
    objEmail.Password = "..." 


    objEmail.CharSet = "UTF-8" 
    objEmail.ContentTransferEncoding = "Quoted-Printable" 
    objEmail.IsHTML = True 

    objEmail.Subject = objEmail.EncodeHeader(strSubject, "UTF-8") 
    objEmail.Body = strBody 

    objEmail.Send 


    Set objEmail = Nothing 

%> 

MAIL SENT. 

</body> 
</html> 
+0

顺便说一句:当我将FromName更改为“日本语”。这将在我的电子邮件应用程序中正确显示!奇怪。我删除了这一行:“Session.CodePage = 65001”,没有任何改变。我尝试了很多版本的代码,但目前为止没有任何帮助。任何想法? – Bernhard

+0

我做了以下更改: objEmail.Subject = objEmail.EncodeHeader(strSubject,“UTF-8”) : objEmail.Subject = strSubject 现在主题正确显示! – Bernhard

回答

0

我不得不添加的所有网页下面的代码:

Session.CodePage = 65001 
Response.Charset = "UTF-8" 

Response.CodePage = 65001 
Response.Charset = "UTF-8" 

然后在记事本++中,我必须确保这些文件是用“UTF-8编码”保存的。我的页面保存为“无UTF-8编码”。我不知道他们为什么像那样得救,但事实就是这样。