将阿拉伯文本转换为HTML代码字符

3

我想发送一封包含阿拉伯文本的电子邮件,但是当我将阿拉伯文本添加到电子邮件中时,它会将其更改为随机字母(与电子邮件的字符编码有关 - 我无法更改)。

是否有内置函数或自定义函数可以将阿拉伯文本转换为HTML代码(ا),以便在我的HTML电子邮件中显示?


尝试在此问题中接受的答案:http://stackoverflow.com/questions/2386843/cdosys-and-unicode-in-the-from-field-vbscript - Shadow The Spring Wizard
你使用的是什么方法发送电子邮件? - C. Ross
我正在使用 ASPMail 4 版本。我还使用了 CustomCharSet 参数,但似乎对电子邮件没有任何影响。当我在 Outlook 中查看电子邮件时,它将其设置为默认字符集。如果我在 Outlook 中更改它,所有阿拉伯文本都可以正常显示。 - Dan Ellis
2个回答

2

您尝试过在HTML头部设置编码类型吗?

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

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

这应该能够使你的阿拉伯字符(和其他非ASCII字符)正确显示。

尽管如此,重要的是要注意,发送HTML邮件时,你总会遇到问题,因为常用的不同电子邮件客户端具有极其不同的功能 - 比浏览器更加不同。

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

你可能对此毫无控制权,因此在各种电子邮件客户端上进行测试非常重要。尽管如此,考虑到你正在发送阿拉伯文本,可以假定大多数收件人将使用能够成功呈现阿拉伯语的电子邮件客户端,因此希望这一事实本身就能够减轻你所面临的最糟糕的问题。


1

保留 HTML 转义符(例如 &#1505;),并通过将 ContentType 设置为 text/html 将电子邮件转换为 HTML。

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

要将Unicode转换为HTML转义字符,您可以使用内置函数HTMLEncode

mailer.BodyText =  Server.HTMLEncode(body)

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


刚试着将它更改为HTML(ASPMail似乎没有IsHTML属性,所以我不得不更改内容类型),尽管我的问题是一些文本是“HTML转义”,而其他文本是纯阿拉伯文本,因此我需要将纯阿拉伯文本转换为“HTML转义”,以便在电子邮件中显示。如果我在电子邮件中显示纯阿拉伯文本,它只会显示随机字母,而不是阿拉伯文。 - Dan Ellis
Server.HtmlEncode可以将它们转换为HTML转义字符,但是当我收到电子邮件时,这些字符显示为:ÊâÏêå ÇäÇÓå: ÊÍÊÇÌ Åáì ÇáãÒíÏ而不是阿拉伯语。尽管我将电子邮件的字符集设置为ISO-8859-6,但它仍然认为它是UTF-8或其他什么东西。 - Dan Ellis
@Scrooby听起来像是您的邮件对象中的某个设置,您是否在Outlook中检查了邮件头?... - C. Ross
非常奇怪。这与我的电子邮件字符集有关。似乎每当我将电子邮件设置为HTML时,它都会完全忽略我的自定义字符集。因此,我尝试了各种方法来尝试将字符集放入其中,最终什么也没用,所以我回到了原来的状态,现在它可以工作了:S 无法解释。不过还是感谢您的所有帮助和建议,真的帮了我很多 :) - Dan Ellis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接