2011-05-25 116 views
3

我试图发送一个包含阿拉伯语文本的电子邮件,我的问题是,当我添加了阿拉伯语文本的电子邮件,它也变成随机字母(用的字符编码做电子邮件 - 我不能改变)。转换为HTML编码字符阿拉伯文字

是否有内置函数或自定义函数可用于将阿拉伯语转换为HTML代码(ا),以便它会出现在我的HTML电子邮件中?

+0

尝试接受的答案在这个问题:http://stackoverflow.com/questions/2386843/cdosys-and-unicode-in-the-from-field-vbscript – 2011-05-25 13:11:17

+0

你用什么方法发送您的电子邮件?邮件? – 2011-05-25 13:48:24

+0

我正在使用ASPMail,版本4.我也使用CustomCharSet参数,但它似乎没有任何影响电子邮件。当我在Outlook中查看电子邮件时,它会将其设置为默认字符集。如果我使用outlook更改它,所有阿拉伯语文本显示正常。 – 2011-05-25 14:06:41

回答

1

留在HTML逃逸(前ס),并通过设置ContentType打开电子邮件的HTML text/html

'Create mailer 
mailer.ContentType = "text/html" 
'User mailer 

要转换的Unicode到HTML逃不过您可以使用内置的功能HTMLEncode

mailer.BodyText = Server.HTMLEncode(body) 

注意:您的查看器需要安装适当的字形集。

+0

只是试图将其更改为HTML(ASPMail似乎没有IsHTML属性,所以我不得不改变内容类型),虽然我的问题是,一些文本是“HTML转义”,其他位文本是纯阿拉伯文所以我需要将简单的阿拉伯语文本转换为“HTML转义”,以便它显示在电子邮件中。如果我在电子邮件中显示简单的阿拉伯文字,它只会显示随机字母,而不是阿拉伯文。 – 2011-05-25 16:27:13

+0

@Scrooby查看更新... – 2011-05-25 16:48:17

+0

Server.HtmlEncode确实将它们转换为HTML转义字符,但是当我收到我的电子邮件时,这些字符显示为:“是的”尽管我将电子邮件的字符集设置为ISO-8859-6,但它仍然是UTF-8之类的东西。 – 2011-05-25 19:31:42

1

您是否尝试过在HTML标头中设置编码类型?

以下内容添加到您的HTML的<head>部分:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 

这应该让你的阿拉伯语(和其他非ASCII)字符呈现正常。甚至比浏览器 -

这就是说,它要注意,发送HTML电子邮件时,你将永远有一个问题,因为通常使用不同的电子邮件客户端有很大的不同的能力是非常重要的。

一个人可能会在当前版本的Outlook中打开电子邮件,另一个人可能会在一份为期10年的副本中打开该电子邮件。其他人可能会使用某些版本的Thunderbird,而其他许多人会使用Hotmail,Yahoo,Gmail或其他无数的Webmail客户端。甚至可能有人仍然设置其电子邮件来显示文本模式电子邮件而不是HTML。

你可能有过任何的没有任何控制,所以它的重要,以确保您在各种电子邮件客户端的测试过。也就是说,假设您正在发送阿拉伯语文本,可以假定您的大部分收件人都将使用能够成功呈现阿拉伯语的电子邮件客户端,因此希望仅凭这一事实就能为您减轻最糟糕的问题。