对 mailto 链接的字符串进行转义的正确方法是什么?
我在这里的页面中有一个链接,包括和参数,但我不确定如何正确转义参数中的数据。mailto:
subject=
body=
该页面是编码的,所以我想所有特殊字符(如德语元音变音符)也应该编码为URL的表示形式?utf-8
utf-8
目前,我正在使用在空格应该存在的所有位置插入字符,但我不确定这是否是正确的方法。rawurlencode()
urlencode()
+
我在这里的页面中有一个链接,包括和参数,但我不确定如何正确转义参数中的数据。mailto:
subject=
body=
该页面是编码的,所以我想所有特殊字符(如德语元音变音符)也应该编码为URL的表示形式?utf-8
utf-8
目前,我正在使用在空格应该存在的所有位置插入字符,但我不确定这是否是正确的方法。rawurlencode()
urlencode()
+
您只需要根据W3C标准在电子邮件地址末尾的链接。rawurlencode()
PHP手册上有一个urlencode的例子(在该页面上搜索mailto):http://php.net/manual/en/function.urlencode.php
根据接受的答案和它的评论,这是我使用的:
function format_text_for_mailto_param($text) {
return rawurlencode(htmlspecialchars_decode($text));
}
例:
$email = "someone@example.org";
$subject = "Test Subject";
<a href="mailto:' . $email . '?subject=' . format_text_for_mailto_param($subject) . '">send email</a>