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

线上版本(包括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编码)等因素进行解码。

原文地址:https://www.cnblogs.com/you-you-111/p/8590903.html

时间: 2024-10-09 12:25:22

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

ffmpeg强化一:编解码过程,基本用法

1  术语: 什么是影片?其实就是一组(很多张)图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是影片.那电影的实质就是N多张图片的集合.那 每张图片和帧又有什么关系呢?事实上,如果一部影片里面的图片,我们原封不动的全部存起来,空间会很大很大很大,但是如果通过一定的算法(这里不讲相关算 法),把每一张图片压缩(编码_encode)一下,变成 帧.再把帧连起来变成流,再把不同的流放到某个容器里面,这就是我们平常看见的电影文件了,文件 碟中谍4.H264.ACC.mkv,他为什么要

url编解码

代码 from urllib.parse import quote,unquote,urlencode print(quote('https://www.cnblogs.com/?a=bc&d=f')) print(urlencode({'a':'b','b':'c'})) print(unquote('https%3A//www.cnblogs.com/%3Fa%3Dbc%26d%3Df')) print(unquote('a=b&b=c')) #编码 #quote操作的是字符串类型,把

VC实现URL编解码

bool DecodeUrl(char *Src, char *url, int MaxLen) { if(NULL == url || NULL == Src) { return false; } if(MaxLen == 0) { return false; } char *p = Src; // 用来循环 int i = 0; // i用来控制url数组 /* 临时保存url编码的数据 例如: %1A%2B%3C */ char t = '\0'; while(*p != '\0' &&am

Qt中gb2312/GBK的URL编解码函数

编码函数: QByteArray encodeURI(QString str) { QByteArray array; QTextCodec *codec=QTextCodec::codecForName("GBK"); QByteArray tmpArray; tmpArray = codec->fromUnicode(str); for(int i=0,size = tmpArray.length();i<size;i++){ char ch = tmpArray.at

android MediaCodec 音频编解码的实现——转码

原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说:好记性不如写博客,善于总结的人才能走的更远.写博客这种利人利己的好处我就不一 一列举了,总之,谁做谁知道,哈哈.在文章中如果有什么问题或者错误,欢迎各位的讨论和指正.好了,步入正题,来看看我们今天要讲的MediaCodec 一.概述 由于项目的需要,需要将mp3文件转码为aac音频文件,起初打算移

【H.264/AVC视频编解码技术具体解释】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

<H.264/AVC视频编解码技术具体解释>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战project的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅.绝知此事要躬行".仅仅有自己依照标准文档以代码的形式操作一遍,才干对视频压缩编码标准的思想和方法有足够深刻的理解和体会. 链接地址:H.264/AVC视频编解码技术具体解释 GitHub代码地址:点击这里 1. H.264的CAVLC

【H.264/AVC视频编解码技术详解】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 1. H.264的CAVLC解析宏块残差数据的流

详解JavaScript中的Url编码/解码,表单提交中网址编码

本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape,encodeURI / decodeURI和 encodeURIComponent / decodeURIComponent. 预备知识 foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/ \_______

详解音频编解码的原理、演进和应用选型等

本文来自网易云音乐音视频实验室负责人刘华平在LiveVideoStackCon 2017大会上的分享,并由LiveVideoStack根据演讲内容整理而成(本次演讲PPT文稿,请从文末附件下载). 1.引言 大家好,我是刘华平,从毕业到现在我一直在从事音视频领域相关工作,也有一些自己的创业项目,曾为早期Google Android SDK多媒体架构的构建作出贡献. 就音频而言,无论是算法多样性,Codec种类还是音频编解码复杂程度都远远比视频要高.视频的Codec目前还主要是以宏块为处理单元,预