【问题标题】:How to prevent iPhone from decoding URI component when trying to send a text in HTML5?尝试在 HTML5 中发送文本时如何防止 iPhone 解码 URI 组件?
【发布时间】:2017-09-22 02:47:01
【问题描述】:

我正在尝试通过 iPhone 以文本形式发送 url,并且该 url 将用户名作为查询参数。用户名中可以有空格,例如“Ben George”。当我尝试通过点击 <a> 标签发送文本时,我的 href 类似于:

href = "sms:&body="+ encodeURIComponent(string)     

我得到了我想在正文中最终向用户展示的内容:

https://www.mylink.com?username=Ben%20George;

但似乎设备解码了文本,因此用户名被解码,链接在中间有一个空格,这破坏了编码的整个目的。所以我得到:

https://www.mylink.com?username=Ben George

知道为什么会发生这种情况或如何防止这种情况发生吗?

【问题讨论】:

  • 什么是“设备”?
  • 什么解码它?你怎么寄?等等.....
  • 嗨,添加了更多信息,我正在 iphone 上尝试在点击 标签时发送文本。发送电子邮件似乎没问题。
  • 为什么 node.js 标签在 Question 处?
  • 所以为了清楚起见,您正在尝试修复未损坏的内容。停止。这是浏览器的 UI 功能。让他们处理。如果它是一个损坏的功能,请打开一个问题。

标签: javascript html url encodeuricomponent


【解决方案1】:

如果您希望消息字面上包含:

http://www.example.com/?username=Ben%20George

然后您需要在将整个字符串包含在sms: URL 中时对其进行 URL 编码

sms:&body=http%3A%2F%2Fwww.example.com%2F%3Fusername%3DBen%2520George

【讨论】:

  • 我试过了,但它似乎正在解码所有内容。您的意思是使用 encodeURIComponent() 对其进行解码,对吗?或者你的意思是我应该手动解码这是不可能的,因为用户名可以改变
  • 我只希望 url 是一个字符串,所以当用户点击它时,它会将用户定向到 url 而不是它的一部分。这就是全部原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 2020-01-04
  • 2023-04-07
  • 2022-10-17
  • 1970-01-01
  • 2015-05-19
相关资源
最近更新 更多