【发布时间】:2012-01-20 11:05:47
【问题描述】:
我在此处的页面中有一个mailto: 链接,其中包括subject= 和body= 参数,但我不确定如何正确转义参数中的数据。
页面是用utf-8 编码的,所以我猜像德语变音符号这样的所有特殊字符也应该编码为URL 的utf-8 表示形式?
目前我使用rawurlencode(),因为urlencode() 会在所有应该有空格的位置插入+ 字符,但我不确定这是否是正确的做法。
【问题讨论】:
-
我原以为
rawurlencode()或urlencode()应该完成这项工作 - 浏览器应该在将其传递给邮件客户端之前正确解码任一版本。您还可以创建参数数组并使用http_build_query()- 查询字符串的格式相同。如果要在 HTML 页面中使用,请确保您还通过htmlspecialchars()传递任何这些选项的结果字符串... -
嗯,它在我想到的所有用例中都这样工作,但也许这不是正确的方法,我的浏览器/邮件客户端只是正确识别并解决该错误,这就是为什么被问到, 只是为了确定:)
-
可能有一种情况可以工作而另一种不能工作,但如果是这种情况,那就是浏览器没有正确解释它的错误。如果其中一个或另一个存在已知错误,显然最好避免它,但我不知道有任何现代浏览器会犯这样一个基本错误 - 如果有一个,它可能会很差,以至于无论如何都无法使用。