2011-11-10 82 views
4

我使用的mailto URI方案在我的網站通過電子郵件發送當前頁面。的mailto亂碼 - 統一

問題是我在mailto連結

<a href="mailto:[email protected]?subject=मानक हिन्दी">Testing</a> 

當鏈接被點擊時,Outlook(版本6)打開使用印地文作爲對象並顯示一些讀取字符作爲主體而不是 「मानकहिन्दी」,即我得到 「「मानकहिनà¥à¤|ी

我使用的PHP,所以我嘗試使用urlencode,utf8_encode和其他類似的功能,它是沒有用的。並且頁面的默認字符集是UTF-8

當我直接粘貼文本您的文字,它的工作原理。

但我需要它作爲一個mailto鏈接...會有什麼解決辦法嗎?

回答

4

很不幸,這可只有通過設置'允許UTF-8支持mailto:協議'選項才能固定在Outlook端。 (在2010年,這是在選項 - >高級 - >國際選項下)。

否則,默認情況下,Outlook將使用用戶特定於區域的桌面默認編碼('ANSI'代碼頁) 8。這使得在一個mailto:URL中使用非ASCII字符非常不可靠以至於無效。 (甚至比subject=正常不可靠了。)

總體思路進行URL編碼的非ASCII字符串是正確的:使用URI,如:

<a href="mailto:[email protected]?subject=%E0%A4%AE%E0%A4%BE%E0%A4%A8%E0%A4%95%20%E0%A4%B9%E0%A4%BF%E0%A4%A8%E0%A5%8D%E0%A4%A6%E0%A5%80">Testing</a> 

是不是更可靠IRI格式與原始Unicode。但是這並沒有解決Outlook問題。

0

較早的前景,據我所知是使用本地編碼,而不是統一的電子郵件,因此任何Unicode字符串將被加擾 - 有可能會設置編碼的mailto一種選擇 - 但不能確定

0

正如bobince說,Outlook有它的侷限性。微軟有published documentation,指出正確配置的Outlook 2003和2007連接到正確配置的Exchange服務器將默認支持Unicode,但這並不能真正幫助公衆。

作爲參考,「標準」要參閱,這是RFC 2047

,我已實施繞過這個限制(只適用於歐洲語言和口音,不是因爲異國情調的印地文的東西)是使用Web窗體,而不是一個mailto的解決方案:鏈接。它需要在服務器端進行更多的設置,但是您可以更多地控制聯繫進程。