线上版本(包括12.2,12.3版本)中,参照过滤条件在传输过程当中通过了URL编码及解码过程,先后端使用的API之间的差别致使一些问题,现记录以下:前端
前端URL编码API后端
encodeURIComponent使用UTF-8编码格式对字符串进行URL编码;编码
后端URL解码API:目前代码中存在如下三种解码方式:code
System.Web.UI.Server.UrlDecode,存在问题:没法解析%2B为+,输出为空白字符;ip
Microsoft.JScript.GlobalObject.unescape,存在问题:只能使用Unicode编码格式,与前端API使用的UTF-8编码格式不匹配,具体问题是汉字没法正确解码;字符串
System.Web.HttpUtility.UrlDecode,存在问题:能够指定编码格式,便于与前端API使用的UTF-8编码格式匹配,但对%2B的解码是非幂等的,第一次解码能够被正确解析为+,而对+解码则输出空白字符;it
鉴于以上存在的问题,在服务端解码过程当中,须要谨慎考虑各类场景下(包括前端、领域)的编解码方式、次数(夹杂BASE64编码)等因素进行解码。服务端