線上版本(包括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編碼)等因素進行解碼。服務端