2011-05-25 139 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。

你可能有過任何的沒有任何控制,所以它的重要,以確保您在各種電子郵件客戶端的測試過。也就是說,假設您正在發送阿拉伯語文本,可以假定您的大部分收件人都將使用能夠成功呈現阿拉伯語的電子郵件客戶端,因此希望僅憑這一事實就能爲您減輕最糟糕的問題。