【问题标题】:mailto unreadable characters - unicodemailto 不可读的字符 - unicode
【发布时间】:2011-12-26 07:03:00
【问题描述】:

我在我的网站中使用 mailto URI 方案通过电子邮件发送当前页面。

问题是我在 mailto 链接中使用印地语作为主题

例子

<a href="mailto:test@gmail.com?subject=मानक हिन्दी">Testing</a>

单击链接时,Outlook(版本 6)打开,它显示一些不可读的字符作为主题,而不是“मानक हिन्दी”,即我得到“'मठ¾à¤¨à¤• हिनà¥à¤¦à¥€"

我正在使用 PHP,所以我尝试使用 urlencode、utf8_encode 和其他类似函数,但没有用。并且页面的默认字符集是UTF-8

当我直接粘贴文本 मानक हिन्दी 时,它可以工作。

但我需要它作为 mailto 链接...解决方案是什么?

【问题讨论】:

    标签: php html unicode hyperlink mailto


    【解决方案1】:

    据我所知,旧版 Outlook 使用本地编码而不是 Unicode 来处理电子邮件,因此任何 unicode 字符串都会被打乱 - 可能有一个选项可以为 mailto 设置编码 - 但不确定

    【讨论】:

      【解决方案2】:

      不幸的是,这只能在 Outlook 端通过设置选项“允许 UTF-8 支持 mailto: 协议”来解决。 (在 2010 年,这是在选项 -> 高级 -> 国际选项下。)

      否则,默认情况下,Outlook 将使用用户的特定于区域设置的桌面默认编码(“ANSI”代码页),它绝不是 UTF-8。这使得在 mailto: URL 中使用非 ASCII 字符变得如此不可靠,以至于实际上毫无用处。 (甚至超过subject= 的正常不可靠性。)

      一般来说,对非 ASCII 字符串进行 URL 编码的想法是正确的:使用类似以下的 URI:

      <a href="mailto:test@gmail.com?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>
      

      比使用原始 Unicode 的 IRI 格式更可靠。但是,这并不能解决 Outlook 问题。

      【讨论】:

        【解决方案3】:

        正如 bobince 所说,Outlook 有其局限性。 Microsoft 有 published documentation 声明正确配置的 Outlook 2003 和 2007 连接到正确配置的 Exchange 服务器将默认支持 Unicode,但这对普通大众并没有真正的帮助。

        作为参考,您要参考的“标准”是RFC 2047

        我为解决此限制而实施的解决方案(仅适用于欧洲语言和口音,而不是像印地语那样具有异国情调的东西)是使用网络表单而不是 mailto: 链接。它需要在服务器端进行更多设置,但可以让您更好地控制联系过程。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-09-20
          • 2019-05-12
          • 2021-10-16
          • 2017-02-14
          • 2018-09-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多