我目前正在开发一个网络应用程序,这部分代码我必须在短信框中预先填充消息。所以我的代码看起来像这样:
<a href="sms:?body=This is the message with & symbol">SMS</a>
在预先填充的消息中,来自&amp;符号向前不会出现在手机的消息框中。我知道我必须编码它,但我不知道编码是什么。对此有何解决方案?感谢。
答案 0 :(得分:2)
这看起来真的很疯狂,但两次编码身体就可以解决问题了。
<a href="sms:?body=hello & stuff">not encoded (doesn't work)</a>
<a href="sms:?body=hello%20%26%20stuff">uri component encoded (doesn't work)</a>
<a href="sms:?body=hello%2520%2526%2520stuff">double uri component encoded (works fine)</a>
从Android设备上测试小提琴:https://jsfiddle.net/k96g2h48/
答案 1 :(得分:1)
Android和iOS对语法的响应略有不同。要将&
放在文本正文中,iOS需要URL编码。对于Android,它需要双重编码,如@Crisman的answer中所述。检查以下代码:
<a href="sms:&body=hi%26bye">iOS</a>
<br>
<a href="sms:?body=hello%2520%2526%2520stuff">double uri component encoded (works fine)</a>
第一个链接在iOS中起作用,第二个链接在Android中起作用。
注意这两个URL的语法。 &
和?
与此结合,它们与&
的ios区分数字和主体部分,而?
用于分隔数字和主体。
带有数字的例子是
<a href="sms:123456&body=hi%26bye">iOS</a>
<br>
<a href="sms:123456?body=hello%2520%2526%2520stuff">double uri component encoded (works fine)</a>
您也可以尝试此fiddle
答案 2 :(得分:0)
尝试使用&
代替“&amp;”因为这是角色的ASCII版本,用于在HTML文档中显示为文本
答案 3 :(得分:0)
编码你的&amp;字符,因为它在URL中具有特殊含义(它是字段的分隔符)
<a href="sms:?body=This+is+the+message+with+%26+symbol">SMS</a>
如果您只想要文本代表,那么URL中具有特殊含义的字符需要是ecnode。
答案 4 :(得分:0)
我认为你需要写下面的内容
<a href="sms:?body=This is the message with & symbol">SMS</a>
答案 5 :(得分:0)
您尝试过此字符\u0026
吗?
<a href="sms:?body=This is the message with \u0026 symbol">SMS</a>
引用来自-https://stackoverflow.com/a/3705601/10989990
编辑
某些浏览器将接受&
,而某些浏览器将不接受此字符,因此&
之后的所有内容都将被视为查询参数
编辑
可能是javascript帮助使用
<!DOCTYPE html>
<html>
<body>
<script>
var txt = "SMS";
document.write("<p>" + txt.link("sms:?body=This is the message with & symbol") + "</p>");
</script>
</body>
</html>
祝你好运:)