如何解决mailto乱码的问题

1
如何解决 mailto 乱码的问题 通过 HTML 链接可以简单的调用邮件编辑器来发送 email. 例如 <a href="mailto:[email protected]?subject=E ">mailto</a> 点击打开的 Outlook Express 6 主题那显示的是乱码, WHY? 应该是编码问题, 试试 JavaScript encodeURI. 结果为%E4%B8%ADE%E6%96%87, 刷新打开依旧是乱码. Google , 发现是 Outlook 的问题, 它只接受 GB2312 之类的中文编码(猜想是中文版的 原因 ), 然而 encodeURI encodeURIComponent 都只能将内容编码为 UTF-8, 因此对 Outlook 无效, 必须将内容编码为 GB2312. Java 中用 URLEncoder.encode("E ", "GB2312");编码后得到%D6%D0E%CE%C4, 再放 入到 HTML 中即可解决乱码问题 <a href="mailto:[email protected]?subject=%D6%D0E%CE%C4">mailto</a> 参考(都没有提供完美的正确答案): http://www.fishbecat.com/2010/12/mailto-outlook.html http://topic.csdn.net/u/20100225/11/c076e552-6be9-4337-8748-52cbb642b69f.html 主要是参考 CSDN net_lover 给出的编码示例, 再对照 Java 中编码/解码方法

Transcript of 如何解决mailto乱码的问题

Page 1: 如何解决mailto乱码的问题

如何解决 mailto乱码的问题

通过HTML链接可以简单的调用邮件编辑器来发送 email.

例如

<a href="mailto:[email protected]?subject=中 E文">mailto</a>

点击打开的Outlook Express 6主题那显示的是乱码, WHY?

应该是编码问题, 试试 JavaScript的 encodeURI.

结果为%E4%B8%ADE%E6%96%87, 刷新打开依旧是乱码.

Google之 , 发现是 Outlook的问题 , 它只接受 GB2312之类的中文编码(猜想是中文版的

原因 ), 然而 encodeURI和 encodeURIComponent都只能将内容编码为 UTF-8, 因此对

Outlook无效 , 必须将内容编码为 GB2312.

在 Java中用URLEncoder.encode("中 E文", "GB2312");编码后得到%D6%D0E%CE%C4, 再放

入到HTML中即可解决乱码问题

<a href="mailto:[email protected]?subject=%D6%D0E%CE%C4">mailto</a>

参考(都没有提供完美的正确答案):

http://www.fishbecat.com/2010/12/mailto-outlook.html

http://topic.csdn.net/u/20100225/11/c076e552-6be9-4337-8748-52cbb642b69f.html

主要是参考 CSDN net_lover 给出的编码示例, 再对照 Java中编码/解码方法