【问题标题】:How to decode golang url.QueryEscape data in javascript?如何在 javascript 中解码 golang url.QueryEscape 数据?
【发布时间】:2014-02-25 05:30:22
【问题描述】:

我在 JS 端有一个字符串 url.QueryEscaped。

url.QueryEscape 将空格替换为 + 号。它们不会在decodeURIComponent 中转换回空间。我应该手动将字符串全部替换为空格吗?解码的正确方法是什么?

【问题讨论】:

标签: javascript go


【解决方案1】:

一种简单的方法是在解码之前将所有+ 字符替换为空格。例如:

decodeURIComponent("%2f+%2b".replace(/\+/g, " "))

会将字符串正确解码为"/ +"。请注意,有必要在解码之前执行替换,因为字符串中可能存在编码+ 个字符。

【讨论】:

  • 谢谢,这就是我所做的,但我想知道我是否会错过一些其他编码字符,例如空格
  • Go QueryEscape 函数只是将空格编码为加号,并对 URL 查询组件中无效的其他字符使用百分比编码。所以 JS 端的 replacedecodeURIComponent 应该处理所有事情。
  • 请注意,进行全部替换的正确方法是将搜索字符串包含在 RegExp 全局修饰符中,例如 decodeURIComponent("%2f+%2b".replace(/\+/g, " "))
猜你喜欢
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2019-05-28
  • 2019-06-03
  • 2017-09-23
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多