我试图通过QueryString将Base64字符串传递到C#.Net Web应用程序.当字符串到达时,"+"(加号)符号将被空格替换.似乎自动URLDecode进程正在执行此操作.我无法控制通过QueryString传递的内容.有没有办法处理这个服务器端?
例:
http://localhost:3399/Base64.aspx?VLTrap=VkxUcmFwIHNldCB0byAiRkRTQT8+PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
Run Code Online (Sandbox Code Playgroud)
生产:
VkxUcmFwIHNldCB0byAiRkRTQT8 PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
Run Code Online (Sandbox Code Playgroud)
人们建议URLEncoding查询字符串:
System.Web.HttpUtility.UrlEncode(yourString)
Run Code Online (Sandbox Code Playgroud)
我无法做到这一点,因为我无法控制调用例程(与其他语言一起工作正常).
还有建议用加号替换空格:
Request.QueryString["VLTrap"].Replace(" ", "+");
Run Code Online (Sandbox Code Playgroud)
虽然我有这个,但我对它的关注,我应该提到这一点,我不知道除了加号之外还有哪些其他字符可能会出错.
我的主要目标是在通过解码器运行之前拦截QueryString.
为此,我尝试查看Request.QueryString.toString(),但这包含相同的格式错误的信息.在URLDecoded 之前有没有办法查看原始QueryString ?
经过进一步测试后,似乎.Net期望从QuerString进入的所有内容都进行URL编码,但浏览器不会自动对GET请求进行URL编码.
我们需要通过互联网分发一些原始语音音频.我们需要体面的品质,但它不需要具有音乐品质.我们主要关心的是消费者的可用性(即他们可以播放的内容和位置)以及下载的大小.我的经验表明,mp3并不能为语音音频产生最佳的压缩数,但我对最好的替代方案感到茫然.最终,我们希望自动化转换过程,以允许消费者选择他们想要的质量与尺寸级别.