使用PHP在javascript中为mailto编码字符
using php to encode characters for mailto in javascript?
我使用window.location.href = 'mailto:?body=visit http://example.com/?content=link';
工作得很好,但链接的建立方式是window.location.href = 'mailto:?body=<?php echo $content; ?>';
现在这工作得很好,除非$content
包含'
或类似的东西打破了代码。
我怎样才能使它工作?
使用rawurlencode
函数[php docs]对输入中url中无效的任何字符进行编码。
<?php $content = "Hello, this' an...'n'nexample!"; ?>
window.location.href = "mailto:?body=<?php echo rawurlencode($content); ?>";
输出:window.location.href = "mailto:?body=Hello%2C%20this%27%20an...%0A%0Aexample%21";
这是真的,你通常会想要使用addslashes
[php docs]当你把一些东西在引号字符串。在本例中,它没有任何作用,因为rawurlencode
的输出没有任何需要用斜杠转义的字符。
您可能需要使用addslashes,它可以转义引号
使用rawurlencode():
window.location.href = 'mailto:?body=<?php echo rawurlencode($content); ?>';
相关文章:
- 为什么字符编码对URL很重要
- 以纯文本加载的脚本-未声明纯文本文档的字符编码
- 在cshtml中对特殊字符进行编码
- 打开字幕字符编码
- 使用节点请求模块的 UTF8 字符编码
- 使用特殊字符 Javascript 对 URL 进行编码
- 仅替换 iframe 的编码字符 Jquery
- document.getElementById(foo).value,带有html编码的特殊字符
- JSON编码一个包含#和其他特殊字符的字符串
- 阻止自动HTML特殊字符编码
- Base64在PHP和JavaScript之间使用加号或与号字符对字符串进行编码
- 如何在输出到 html 之前停止 asp.net 编码字符
- 正在解码HTML十进制编码字符
- 将特殊字符转换为Html编码字符
- 在Node.js中解码URL编码字符
- 使用PHP在javascript中为mailto编码字符
- 编码字符破坏IE8上的Knockout js数据绑定
- 可以在页面标题中使用UTF-8编码字符吗?
- 从JSON元素的内容构造URL以避免输出中出现编码字符的正确方法是什么?
- Javascript FileReader readAsText函数不理解utf-8编码字符,如ä和& # 2