一般情况下,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')

转载于:https://www.cnblogs.com/c-y-across-I/archive/2013/06/09/3128183.html

在js传递参数中含加号(+)的处理方式相关推荐

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

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

  2. post 传递参数中包含 html 代码解决办法,js加密,.net解密

    今天遇到一个问题,就是用post方式传递参数,程序在vs中完美调试,但是在iis中,就无法运行了,显示传递的参数获取不到,报错了,查看浏览器请求情况,错误500,服务器内部错误,当时第一想法是接收方式 ...

  3. URL中参数中的加号

    问题:当URL中参数值中有加号时,java后台获取该参数后,加号消失 解决方法:在js中,拼接URL地址时,用encodeURIComponent对该参数进行编码:后台直接用request.getPa ...

  4. js方法参数中含有单引号双引号的处理

    最近在做项目时,遇到一个问题.当在js脚本中,拼接生成一个tr,然后添加到一个表格里. //假定testval是从后台传过来的数据var testval = "含有'半角单引号的字符串&qu ...

  5. java web传递参数_Javaweb的八种传值方式

    1.表单提交 html自带的from方法,简单易懂,便于操作,依靠于标签中的type="submit"进行表单传输,或者根据js进行控制提交表单.其中由method属性决定以pos ...

  6. dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式

    Dao层传递参数到mapping.xml文件的几种方式:(Mybatis传值总结) 第一种:传递单个参数 Dao层Code片段: /** * 根据articleId查询XXXX详情. * * @par ...

  7. js向php传递中文参数,JS传递参数时对中文进行编码和解码

    Nginx 配置简述 不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦. ...

  8. 微信小程序GET请求总,如果参数中出现'+ ',' '加号符号,发送到后台会出现空格

    比如你看到这个博客的标题会发现有两个引号,第一个是正常显示加号,第二个是空白,因为被当做空格了. 第一个我写的是 '%  2  B  ' 如果加上请求头呢: header: {'Content-Typ ...

  9. js 传递参数中文乱码

    换成这种方式接收 function getQueryString(key){var reg = new RegExp("(^|&)"+key+"=([^& ...

最新文章

  1. ajax 同步和异步的区别|已迁移
  2. 【python3】 抓取异常信息try/except
  3. tensorflow随笔-求平均值的函数
  4. hive 运行命令后FAILED: Execution Error, return code 137 from org.apache.hadoop.hive.ql.ex ec.mr.MapredLoc
  5. python实现抓取网页上的内容并发送到邮箱
  6. JeeWx捷微3.0多触点版本发布,支持微信公众号,微信企业号,支付窗——喜迎双“旦”
  7. django自带调试服务器的使用
  8. mysql和python先学哪个_Python数据库操作 初识mysql和mysql基本操作#学习猿地
  9. linux arm 虚拟机,ARM平台上实现Linux内核虚拟机技术研究
  10. form表单file,select选择后自动提交
  11. 电路——I/O口定时翻转电平驱动蜂鸣器注意事项
  12. opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3 OpenThread
  13. 初识 Node.js
  14. git常用命令让你几步摆脱图形工具提交项目
  15. C专家编程 五 声明的优先级规则
  16. python矩阵计算器心得_矩阵类计算器Python
  17. 学校考场重要组成部分ntp子母钟(时间同步系统)方案
  18. python的皮卡丘如何写代码,用python画皮卡丘的代码
  19. 网站服务器死机是什么意思,服务器宕机是什么意思?
  20. 数据库八股文--藤原豆腐店自用

热门文章

  1. linux 启动/关闭多个py脚本
  2. (保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码
  3. abs std::abs_ABS的完整形式是什么?
  4. 如何创建Java程序
  5. python 入门到实践期末考试常出现的考试内容_Python编程入门到实践—列表篇(一)...
  6. web安全---SSRF漏洞
  7. java多线程知识_学习知库丨Java多线程知识大全
  8. 111. 二叉树的最小深度 golang
  9. tornado 学习注意事项--00
  10. C++析构函数执行顺序