实际项目中前后端传输字符串url编解码过程中遇到的一些问题

CeraSumat CeraSumat     2022-10-25     290

关键词:

线上版本(包括12.2,12.3版本)中,参照过滤条件在传输过程中经过了URL编码及解码过程,前后端使用的API之间的差异导致一些问题,现记录如下:

 


前端URL编码API

 

encodeURIComponent使用UTF-8编码格式对字符串进行URL编码;


后端URL解码API:目前代码中存在以下三种解码方式:

 

System.Web.UI.Server.UrlDecode,存在问题:无法解析%2B为+,输出为空白字符;

Microsoft.JScript.GlobalObject.unescape,存在问题:只能使用Unicode编码格式,与前端API使用的UTF-8编码格式不匹配,具体问题是汉字无法正确解码;

System.Web.HttpUtility.UrlDecode,存在问题:可以指定编码格式,便于与前端API使用的UTF-8编码格式匹配,但对%2B的解码是非幂等的,第一次解码可以被正确解析为+,而对+解码则输出空白字符;

 

 

 

鉴于以上存在的问题,在服务端解码过程中,需要谨慎考虑各种场景下(包括前端、领域)的编解码方式、次数(夹杂BASE64编码)等因素进行解码。

java前后端分离项目生成二维码链接带中文参数遇到的问题及解决办法(代码片段)

遇到的问题最近项目做二维码分享链接过程中遇到了个小问题,使用Java后端生成二维码链接时,当拼接的参数中带有中文,使用手机浏览器扫码正常,但是用微信扫码,url中的中文被和谐掉了,导致页面... 查看详情

java前后端分离项目生成二维码链接带中文参数遇到的问题及解决办法(代码片段)

遇到的问题最近项目做二维码分享链接过程中遇到了个小问题,使用Java后端生成二维码链接时,当拼接的参数中带有中文,使用手机浏览器扫码正常,但是用微信扫码,url中的中文被和谐掉了,导致页面... 查看详情

中文网页编解码问题

...,有时会遇到uXXXX格式表示的字符,其中XXXX是16进制数字的字符串表示形式,在js中这个叫Unicode转义字符,和   同属于转义字符.在其他语言中也有类似的,可能还有其它变形的格式.0.2、url编码/百分比编码HTTP請求參數,必須使用請... 查看详情

java前后端分离项目生成二维码链接带中文参数遇到的问题及解决办法(代码片段)

遇到的问题最近项目做二维码分享链接过程中遇到了个小问题,使用Java后端生成二维码链接时,当拼接的参数中带有中文,使用手机浏览器扫码正常,但是用微信扫码,url中的中文被和谐掉了,导致页面... 查看详情

前后端数据交互中的特殊字符

...故,原因是前端将null传给了后端,后端接收到的数据是字符串“null”,在处理数据的时候报错;原因:前后端经过讨论大概的猜测原因有以下几种1.Java无法正确转化前端传给的特殊值null,故强制转化成字符串"null"(网上... 查看详情

二、视频编解码基础知识

...据已经编码好的块信息得到一个预测值,这样只需要编码实际值与预测值之间的差异即可。空间冗余的消除:帧内预测:根据同一帧中相邻已编码 查看详情

pythonstr与bytes编码解码

...它们是一种根据编码表进行翻译、映射的过程:实际上,字符串类型只有encode()方法,没有decode()方法,而bytes类型只有decode()方法而没有encode()方法。二进制格式的数据也常称为裸数据(rawdata),所以str数据经过编码后得到rawdata,r... 查看详情

springboot解决前后端分离项目中跨越请求,同源策略

今天在做项目的过程,采用前后端分离技术的时遇到采用ajax请求无法访问后台接口,按F12,查看浏览器运行状态时,报如下错误为了解决浏览的同源策略,就必须了解什么是同源策略。1.什么是同源策略同源策略(Sameoriginpolicy)是... 查看详情

url中拼接中文参数,后台接收为乱码的问题(代码片段)

...t.URLDecoder.decode(chineseParam,"UTF-8");这样就能实现中文参数的前后端传递了。另外要注意的是,这种方式只有在拼接URL参数的场景下有效,如果是将参数传递放在请求体中,比如AJAX中的data,是不需要对中文参数进行手动编码和解码... 查看详情

视频的编解码-编码篇

...数据结构.一、videoToolbox的基本数据VideoToolbox视频编解码前后需要应用的数据结构进行说 查看详情

base64编码解码

...文本”的编码方式,它能够将任意二进制数据转换为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。(1)base64编 查看详情

前后端分类,数据传输问题

...前后端约定一个key,将请求参数按照字母排序拼接成一个字符串(通常都是ASCll排序),然后拼接上key,最后用MD5或者SHA进行加密,得到一个加密的签名sign,再把sign作为最后一个参数传到服务端。服务端拿到前端传过来的结果之后... 查看详情

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

...冲信号转换成它所代表的信息、数据等的过程。由于直接传输原始画面数据量庞大,会占用较多的带宽资源,为了节约带宽,减轻玩家的带宽压力,在传输前,编码器会对游戏画面进行压缩,让画面的流数... 查看详情

json数据前后端传输

...取后会自动转为数组;2,如果客户端提交的是json格式的字符串,后端php获取后 如果字符串中引号带有\反斜杠,需要用 stripslashes() 函数给预定义字符去掉\反斜杠,再使用json_decode()转为数组(第二个参数设置为true)或... 查看详情

前后端分离的项目如何实现登录状态的保持。

...会使用token实现登录状态的保持。token其实就是一个随机字符串,当用户在登录页面输入账号和密码后,前端将账号密码发送给后端,后端检验完账号和密码后,会生成一个随机不重复的字符串即(token),并将其响应给前端,前... 查看详情

前后端交互(代码片段)

    最近开始学习跟数据有关的知识了,跟数据接触最多的就是后端人员了,而前端想要使用数据就必须跟后端人员打交道,先来了解一下一些基本的知识点吧。1.什么是服务器和客户端        上网的目的:... 查看详情

springboot前后端分离项目session问题解决

  最近接手了一个新项目,采用了SpringBoot前后端分离开发,勉强算是吧,因为我们没使用VUE。那么今天就遇到一个问题,登录之后把用户信息存放到了Session中,但是我在其他方法中从Session域再次拿用户信息时,却发现session... 查看详情

volte端到端业务详解|编解码基础知识

...0c;因此需要在发送端将语音转化为数字信号才能在系统中传输& 查看详情