这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下。

一般情况下, 发送 encodeURIComponent(parmeName)+"="+encodeURIComponent(parmeValue);

接收时, 直接 String paramValue = request.getParameter(paramName); // 容器自动解码.

我们知道 encodeURIComponent 使用的是 UTF-8 编码规则来编的.

如果 request.getParameter(paramName) 时,容器也按 UTF-8 解的话,是正确的. 根本无须在客户端

进行二次的 encodeURIComponent(...)

如果 request.getParameter(paramName),容器没有按 UTF-8 解的话, 结果只有一个,就是乱码!

容器按什么编码来解码,决定于 request.setCharacterEncoding(***) 或者 服务器程序配置.

如果你在 jsp 程序中,能够 request.setCharacterEncoding("UTF-8"), 并且 修改服务器配置,让容器在解 GET 提交的参数时,使用 UTF-8.

客户端提交前不用二次编码, 接收时,也只要直接 request.getParameter(paramName) 即可

为什么网上会有人提出在客户端对字符串重复编码两次呢.

如果因为项目需要,不能指定容器使用何种编码规则来解码提交的参数, 比如:需要接收来自不同页面,不地编码的参数内容时。 (又或者是开发人员被这有点复杂的东东搞得晕头转向,不懂得如何正确的去做好这接收参数的工作)

这个时候,在客户端对参数进行二次编码,可以有效的避开“提交多字节字符”的这个棘手问题。

因为第一次编码,你的参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。(这里把编第一次的结果叫成 [STR_ENC1] 好了。[STR_ENC1] 是不带有多字节字符的)

再编一次后,提交,接收时容器自动解一次 (容器自动解的这一次,不管是按 GBK 还是 UTF-8 还是 ISO-8859-1 都好,都能够正确的得到 [STR_ENC1])

然后,再在程序中实现一次 decodeURIComponent (Java中通常使用 java.net.URLDecoder(***, "UTF-8")) 就可以得到想提交的参数的原值。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?相关推荐

  1. js编码java解码_常用的js、java编码解码方法

    前言 前后端直接传输数据进行交互不就行了吗,为什么还要进行编码解码?正常情况下直接交互没问题,但当有类似以下情况出现时就需要进行编码再进行传输: 1.编码格式难以统一,导致数据交互过程出现中文乱码等问 ...

  2. js 引用 java常量_java调用JS 与JS 调java

    这个 刚开始 我也不会,把我整的是个蛋疼的啊, 最后发现其实挺简单的,我现在给大家说的是我自己掌握的一种, 1. 先是要给项目配置一些权限 (1).访问网络权限 (2).访问SD卡权限 2.给webv ...

  3. js 模拟点击_爬虫js逆向之无限debugger--抖音第三方数据分析平台的坑

    爬虫js逆向系列 我会把做爬虫过程中,遇到的所有js逆向的问题分类展示出来,以现象,解决思路,以及代码实现,这三方面解析,供大家参考爬虫认知 在程序猿所有的方向中,爬虫是离money最近的一个方向,你 ...

  4. jsx怎么往js里传参数_给js文件传参数(详解)

    一.利用全局变量 这是最简单的一种方式,比如Google Adsense: 缺点是引入了全局变量.其中引入文件的方式还有两个变体: // 变体1:用document.write输出 document. ...

  5. js replace 中文分号_在JS中用Replace 全部替换字符

    类型:电子教程大小:3.3M语言:中文 评分:2.8 标签: 立即下载 在JS中常用的替换字符串是用 Replace函数,我们先来看一下 Replace函数的用法 replace 方法 返回根据正则表 ...

  6. java 企业版_下列版本中哪个是Java 企业版

    下列版本中哪个是Java 企业版 2021-02-07 下列版本中哪个是Java 企业版 张爱玲评价自己的服饰:"仿佛穿着博物院的()到处走,遍体森森然飘飘欲仙".转动惯量是刚体转 ...

  7. 修改docker内java内存_在docker中使用java的内存情况

    Java和Docker不是天然的朋友. Docker可以设置内存和CPU限制,而Java不能自动检测到.使用Java的Xmx标识(繁琐/重复)或新的实验性JVM标识,我们可以解决这个问题. 虚拟化中的 ...

  8. js 中 java 代码_在js中嵌套java代码

    jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 //取出java ...

  9. java前台传多个id用什么接收_前端js传多个id 到java后台的处理方式

    $("#createApplysjinfo").click(function(){ var allTableData=datagrid.bootstrapTable('getDat ...

最新文章

  1. python dict遍历性能,Python:遍历list vs over dict items效率
  2. 单例设计模式八种方式——5) 懒汉式(线程安全,同步代码块) 6) 双重检查 7) 静态内部类 8) 枚举
  3. .Net微服务实战之可观测性
  4. MobileSpace-关于我的激情的故事
  5. RuoYi-Cloud 进阶篇_03( Seata 高可用集群与 NacosConfig配置中心整合)
  6. BUAA-OO-2019 第三单元总结
  7. Python学习:命令行运行,循环结构
  8. ubuntu tftp 服务器故障排除一例
  9. 基于JAVA+Servlet+JSP+MYSQL的高校社团管理系统
  10. 【心灵鸡汤】谁的青春不迷茫
  11. python中惩罚的代码_如何只为在python中使用的实现支付依赖惩罚?
  12. XSS漏洞的渗透利用另类玩法
  13. 【算法笔记】马拉车算法:最长回文子串
  14. 计算机语言学翁富良,形式语言与自动机的关系
  15. 目前最常用的计算机机箱类型为_2016年秋计算机基础理论题 答案解析
  16. Builder模式创建pojo类
  17. java 发微信视频_分享java微信开发视频
  18. mysql查询的结果拼接字符串_MySql查询结果拼接成字符串
  19. 在失败的滴滴出行LOGO上谈APP设计
  20. MATLAB 过时了吗?

热门文章

  1. 捡起JavaScript(1)
  2. springContext
  3. [Leetcode]@python 107. Binary Tree Level Order Traversal II
  4. 于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了
  5. Linux平台gcc和动态共享库的基础知识
  6. new 与 malloc区别
  7. Nginx常用命令有哪些?
  8. Epoll例子的使用
  9. 嵌入式算法-傅里叶变换算法
  10. linux tar 使用