最近前段在导出数据时会遇到“illegal character”的异常错误,结果发现是在请求地址中请求参数包含了空白字符(其编码为%C2%A0)或者是空格字符(其编码为%20),之前对空格字符情况是做了规避处理,而这次又出现了空白字符,要是后续还有其它特殊字符呢?那如何是好?难道每次遇到这些特使字符就在后端做特殊处理?这样显然不合适。既然后端对请求地址(包含请求参数)进行了非法校验(通过URBuilder类进行处理),那么目前只好将请求参数(我遇到的问题是下载的文件名称含有空格或空白字符)放置在请求体中了,这样就可以规避URBuilder的检查处理,在后端中从请求体中获取我想要的文件名称。

虽然,将文件名称从请求参数移动到请求体中,可以规避URBuilder对请求参数中含有非法字符的检验,但是前端所下载下来的文件名称还是不能正常显示空格或空白字符,都是这些特殊字符的编码形式。后端Java代码是使用了URLEncoder.encode()进行了UTF-8编码,由于后端的数据流还经过了BFF层,由于在BFF层又对编码过的字符再次进行了编码,导致在前段用JavaScript的decodeURIComponet()方法进行一次解码后仍旧显示的编码字符,因此需要进行多次解码才行,我这里是调用了三次decodeURIComponet()方法解码才能够正常显示文件名称了。

说明一下:在Java中用URLEncoder.encode()和URIDecoder.decode(),那么在JavaScript中需要采用decodeURIComponet()和encodeURIComponet()进行配对。

20191105 闪

js编码java解码_JS编解码与Java编解码的对应关系相关推荐

  1. js编码java解码_Js编码和Java后台解码

    注: 在使用get提交,url传递参数的时候,会带来中文乱码的问题,对此可以使用js编码来解决. Js编码的几种方式区别: 1.window.escape()与HttpUtility.UrlEncod ...

  2. Js编码和Java后台解码

    注: 在使用get提交,url传递参数的时候,会带来中文乱码的问题,对此可以使用js编码来解决. Js编码的几种方式区别: 1.window.escape()与HttpUtility.UrlEncod ...

  3. js 编码、解码与asp.net 编码、解码

    js对URL提供:escape,encodeURI,encodeURIComponent 的编码方法encodeURIComponent:推荐使用,它是将中文.韩文等特殊字符转换成utf-8格式的ur ...

  4. js编码scape 解码unescape

    str=escape(yourStr) yourStr=unescape(str) 后台默认utf-8 所以 由js跳到后台是不用解密的 前台 <a target='_blank' href=' ...

  5. 图片解码 java_Java 8实现图片BASE64编解码

    前言 Basic编码是标准的BASE64编码,用于处理常规的需求:输出的内容不添加换行符,而且输出的内容由字母加数字组成. 最近做了个Web模版,其中想用Base64背景图.虽然网络上有现成的编码器, ...

  6. python解码asn_使用asn1tools进行asn1编解码

    最近在做3GPP的编解码,发现有两个第三方库比较好用.一个是ASN1C(c语言编译环境),一个是python第三方库asn1tools.这里介绍下asn1tools的使用方法: 1 第一步:生成asn ...

  7. [转载] python json 编码(dump/dumps:字典转化为json)、解码(load/loads:json转化为字典)

    参考链接: Python-Json 2 : 使用json.load/loads读取JSON文件/字符串 python json 编码(dump/dumps:字典转化为json).解码(load/loa ...

  8. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    转载地址:http://www.haorooms.com/post/js_escape_encodeURIComponent 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器ur ...

  9. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】

    引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encode ...

  10. xss编码绕过详解(更像是在介绍实体编码和JS编码的解析过程)

    xss编码绕过详解(更像是在介绍实体编码和JS编码的解析过程) 注:本文通过研究各种情况下实体编码和JS编码是否生效,进而总结了哪些情况下能够进行编码后,javascript代码依然能够正常执行. 解 ...

最新文章

  1. ubuntu 安装docker报错
  2. 批量生成100万张小程序码?了解一下。
  3. 字节,腾讯,百度... Go 工程师面试题大公开
  4. java 超时集合_确定性监视器脉冲/等待并在 生产环境 者 - 消费者集合中实现超时...
  5. 索引深入浅出(6/10):选择正确并合适的聚集索引键
  6. 11-----的使用
  7. PHP has encountered an Access Violation at
  8. 计算机仿真技术在物流行业的应用,【计算机仿真论文】计算机仿真技术在物流中的应用(共3678字)...
  9. 安装LaTeX中文字体 xGBKFonts
  10. python 儿童教程_教孩子学编程PYTHON语言版PDF_Python教程
  11. 计算机管理设置透明,怎么让Win10任务栏全透明_win10系统让任务栏完全透明的设置步骤-win7之家...
  12. Android短信发送,监听,及其工具类封装
  13. 如何提高页面性能并充分利用主机
  14. 关于Autosar中的NM模块的理解
  15. 各类型PPT免费模板,无需编辑直接套用即可!
  16. 美团后端一面准备——面试模板
  17. 【微信小程序原生】 上传图片和视频
  18. 【转】LVTTL与LVCMOS区别
  19. 【分层强化学习】HAC源码解读
  20. CCNA-NAT协议 静态NAT 动态NAT(多对多) PAT(多对一) 内网与外网之间的通信 GNS3实验验证

热门文章

  1. Vista破解TCP/IP线程数为BT、电驴提速(转)
  2. 反网络追踪技术研究总结
  3. 征服c指针_[转载]《征服C指针》
  4. windows dism命令镜像修复方法
  5. IT治理-组织体系建设
  6. Flink时间【事件时间、摄取时间、处理时间】与水印概述
  7. 俄罗斯:自由软件在这里起飞
  8. 儿童学python的平台-干货:孩子免费学习编程的十大网站&App
  9. 散光 gif_散光-像“弯曲的镜子”王国中的视野
  10. 支持BLE 5.1 AoA/AoD,EFR32BG22参数对比nRF52833和nRF52811