浅谈在js传递参数中含加号(+)的处理方式

 更新时间:2016年10月11日 12:47:21   投稿:jingxian  
下面小编就为大家带来一篇浅谈在js传递参数中含加号(+)的处理方式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

但是对于带有中文的参数来说,这种编码会使编码后的字符串变得很长。

如果希望有短一点的方式对参数编码,可以采用 base64 编码方式对字符串进行编码,但是 base64 编码方式不能处理 JavaScript 中的中文,因为 JavaScript 中的中文都是以 UTF-16 方式保存的。

而 base64 只能处理单字节字符,所以不能直接用 base64 对带有中文的 JavaScript 字符串进行编码。

但是可以通过 utf.js 这个程序中提供的 utf16to8 来将 UTF-16 编码的中文先转化为 UTF-8 方式,然后再进行 base64 编码。

这样编码后的字符串,在传递到服务器端后可以直接通过 base64_decode 解码成 UTF-8 的中文字符串。

但是还有个问题需要注意。

base64 编码中使用了加号(+),而 + 在 URL 传递时会被当成空格,因此必须要将 base64 编码后的字符串中的加号替换成 %2B 才能当作 URL 参数进行传递。

否则在服务器端解码后就会出错。

所以我们需要做的就是encodeURI(str).replace(/\+/g,'%2B')

以上就是小编为大家带来的浅谈在js传递参数中含加号(+)的处理方式全部内容了,希望大家多多支持脚本之家~

相关文章

  • 详解GoJs节点的选中高亮实现示例

    详解GoJs节点的选中高亮实现示例

    这篇文章主要为大家介绍了GoJs节点的选中高亮实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 微信小程序购物商城系统开发系列-工具篇的介绍

    微信小程序购物商城系统开发系列-工具篇的介绍

    这篇文章主要介绍了微信小程序购物商城系统开发系列-工具篇的介绍,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • js加载读取内容及显示与隐藏div示例

    js加载读取内容及显示与隐藏div示例

    这篇文章主要介绍了js加载读取内容及显示与隐藏div的方法,需要的朋友可以参考下
    2014-02-02
  • JavaScript进阶(三)闭包原理与用法详解

    JavaScript进阶(三)闭包原理与用法详解

    这篇文章主要介绍了JavaScript闭包原理与用法,结合实例形式详细分析了JavaScript闭包相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • 如何使用js查找数组中符合条件的元素

    如何使用js查找数组中符合条件的元素

    这篇文章主要给大家介绍了关于如何使用js查找数组中符合条件的元素,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-04-04
  • 分享8个JavaScript库可更好地处理本地存储

    分享8个JavaScript库可更好地处理本地存储

    这篇文章主要介绍了分享8个JavaScript库可更好地处理本地存储,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 微信小程序实现列表滚动头部吸顶的示例代码

    微信小程序实现列表滚动头部吸顶的示例代码

    这篇文章主要介绍了微信小程序实现列表滚动头部吸顶的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JavaScript基础之静态方法和实例方法分析

    JavaScript基础之静态方法和实例方法分析

    这篇文章主要介绍了JavaScript基础之静态方法和实例方法,简单分析了javascript静态方法及实例方法的定义、使用相关操作技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • 最全的package.json解析

    最全的package.json解析

    从我们接触前端开始,每个项目的根目录下一般都会有一个package.json文件,这个文件定义了当前项目所需要的各种模块,以及项目的配置信息,本文就详细的来介绍一下
    2021-07-07
  • JS实现打字游戏

    JS实现打字游戏

    这篇文章主要为大家详细介绍了JS实现打字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12

最新评论