decodeURI将空间解码为+符号

时间:2013-06-09 13:30:49

标签: javascript decode

我创建了Google自定义搜索。逻辑是当用户搜索时,页面将显示结果,并且页面的标题将使用javascript更改为搜索词。我使用decodeURI解码unicode字符。但是空间被解码为+。例如,如果我搜索钱,它将被解码为钱+制作,并显示为标题。有人请帮忙解决这个问题。我想显示空格而不是符号+。

代码是

 if (query != null){document.title = decodeURI(query)+" | Tamil Search";}</script>

2 个答案:

答案 0 :(得分:13)

出于这个原因,Google Closure Library提供了自己的urlDecode函数。您可以使用该库,也可以使用open source solution来解决它。

/**
 * URL-decodes the string. We need to specially handle '+'s because
 * the javascript library doesn't convert them to spaces.
 * @param {string} str The string to url decode.
 * @return {string} The decoded {@code str}.
 */
goog.string.urlDecode = function(str) {
  return decodeURIComponent(str.replace(/\+/g, ' '));
};

答案 1 :(得分:3)

您可以使用替换功能:

decodeURI(query).replace( /\+/g, ' ' )