JS编解码与Java编解码

Posted Bien94

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS编解码与Java编解码相关的知识,希望对你有一定的参考价值。

  最近前段在导出数据时会遇到“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编解码的主要内容,如果未能解决你的问题,请参考以下文章

java编解码技术,json序列化与二进制序列化

java编解码技术,netty nio

java编码与解码

硬件编解码与软件编解码的区别

视频编解码·学习笔记3. H.264视频编解码工程JM的下载与编解码

H.264视频编解码器——参考软件JM的下载与编解码