urlencode()mailto:subject =的字符串,带有可以正确解码的短划线字符

时间:2014-01-14 21:07:47

标签: php mailto

我有一个字符串,例如“2013 International Truck - XZ1234”,我需要urlencode()并以一种正确解码的方式包含在mailto subject =中。我已通过以下方式对此进行了测试:

$encodedstring = urlencode("mailto:info@something.com?subject=2013 International Truck – XZ1234")
<a href="<?php $encodedstring ?>">Email Us</a>

链接将如下所示:

<a href="mailto:info@southlandit.com?subject=2013+International+Truck+%26%238211%3B+XZ1234">Email Us</a>

然后主题被解码并显示在主题输入字段中,如下所示:(已在Gmail中测试过)

2013 International TerraStar Truck &#8211; NT2031

是否有替代urlencode()或其他方式对此字符串进行编码,以便在邮件客户端中正确解码包括短划线在内的所有字符?

2 个答案:

答案 0 :(得分:1)

您的字符串是双重编码的。 %26%238211%3B&#8211;的编码形式,它是破折号的编码形式。跟踪代码执行情况,看看它被编码两次。

答案 1 :(得分:0)

您可以使用以下内容删除特殊格式..

remove_filter( ‘the_title’ , ‘wptexturize’ );

remove_filter( ‘the_content’ , ‘wptexturize’ );

remove_filter( ‘the_excerpt’ , ‘wptexturize’ );

remove_filter( ‘comment_text’ , ‘wptexturize’ );

remove_filter( ‘list_cats’ , ‘wptexturize’ );

wptexturize