带方括号的 Uri.EscapeUriString

2024-06-29

这是一个奇怪的问题,但让我们看看它会得到什么样的回应......

如果我编写一个控制台应用程序(VS 2013,.NET 4.5.1)并执行这行代码:

Uri.EscapeUriString("[")

我明白了:

[

但是,如果我执行同样的事情(嗯,从技术上来说Uri.EscapeUriString("[").Dump())在我的机器上的 LINQPad 中我得到这个:

%5B

让事情变得更加复杂的是,根据这篇文章 https://stackoverflow.com/a/11236038/1068266 Uri.EscapeUriString("[")确实应该返回%5B.这篇文章写于2012年6月27日。

我认为 LINQPad 引用的 DLL 可能比 VS 使用的旧 DLL,但这意味着EscapeUriString最近发生了变化,我找不到任何记录。有谁知道什么可能导致这种行为?


这在 .Net 4 和 .Net 4.5 之间发生了变化,您可以通过将框架版本重新定位到 .Net 4 并运行测试程序来验证这一点。

.Net 4 -> 输出“%5B” .net 4.5(或更高版本)-> 输出“[”

这里提到了这一点:.NET Framework 4.5 中的应用程序兼容性 http://msdn.microsoft.com/en-us/library/hh367887%28v=vs.110%29.aspx

在以下部分下Uri.EscapeDataString 、 Uri.EscapeUriString 和 Uri.UnescapeDataString,其中指出(使用 .Net 4.5):

现在支持保留和非保留字符列表RFC 3986 https://www.rfc-editor.org/rfc/rfc3986.

具体变化:

Unreserved escaped characters are un-escaped.
EscapeDataString escapes reserved characters based on RFC 3986.
EscapeUriString does not escape reserved characters.
UnescapeDataString does not throw an exception if it encounters an invalid escape sequence.

特别是,它是EscapeUriString 不转义保留字符这很重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带方括号的 Uri.EscapeUriString 的相关文章

  • C 和 C++ 中的“**”是什么意思?

    当一个对象开头有两个星号时意味着什么 variable 在声明中 这意味着它是一个指向指针的指针 int x declare x as a pointer to a pointer to an int 使用它时 它会引用它两次 int x
  • 如何获取mp3曲目的时长?

    我想问一下如何在应用程序中获取音频文件的长度 我正在像这样加载曲目 var installFolder Windows ApplicationModel Package Current InstalledLocation var resou
  • Asp.Net Mvc 5 图像不显示

    我有相同的图像Content and Views文件夹 我正在尝试显示图像 如下所示 img src Content Images download png alt Content folder br br img src Views Ho
  • C++:空类的对象的大小是多少?

    我想知道可能是什么空类对象的大小 肯定可以not为 0 字节 因为它应该可以像任何其他对象一样引用和指向它 但是 这样的物体有多大呢 我用了这个小程序 include
  • 在运行时更改语言的正确方法

    在运行时更改表单语言的正确方法是什么 使用递归手动设置所有控件 例如this https stackoverflow com questions 7556367 how do i change the culture of a winfor
  • 使用 fork/execvp 和系统调用之间的区别

    使用 system 执行二进制文件与使用 fork execvp 组合执行二进制文件有什么区别 安全性 可移植性 性能方面是否存在差异 系统还使用了一个fork exec 组合 如果你这样做fork exec您自己可以与正在运行的进程并行执
  • 将 .net 上的 AWS 开发工具包与 localstack 结合使用(TransferUtility/S3 - 设置端点)

    我有本地堆栈 https github com localstack localstack https github com localstack localstack 正在运行 并且能够使用 aws s3 cli 将文件上传到其中 我想要
  • ASP.NET身份更改密码

    我需要能够由管理员更改用户密码 因此 管理员不应输入用户的当前密码 他应该能够设置新密码 我查看了 ChangePasswordAsync 方法 但该方法需要输入旧密码 因此 此方法不适合此任务 因此我通过以下方式做到了 HttpPost
  • 是否有合法的方法使用运算符 << 打印元组和对?

    我有一组模板 函数 允许我打印元组 对 假设元组 对中的每种类型都有operator lt lt 为其定义的 不幸的是 由于 17 4 3 1 添加我的内容是非法的operator lt lt 重载到std 有没有其他方法可以让 ADL 找
  • 如何使用鼠标指针和键盘快捷键捕获文本?

    我想使用 C 或 java 使用鼠标指针和键盘快捷键从打开的窗口捕获文本 喜欢babylon http babylon com 所以 我需要知道什么以及如何实施 我需要使用哪些库 或者我可以使用 winapi 吗 使用脚本语言创建您想要执行
  • 从 ASP.NET 插入到 MS Access

    我们正在尝试建立一个专门用于内联网的服务台票务系统 决定使用 Visual Studio 2008 Express 的 ASP NET C 如果需要的话 我们有一个完整版本 没什么花哨的 几页抓取 NTLM 信息 系统信息并将其与问题一起存
  • Boost的Dijkstra算法教程

    我很难弄清楚如何使用 Boost 的 Dijkstra 算法 我已经阅读了他们的示例和文档 但我仍然无法理解如何使用它 Boost的文档 http www boost org doc libs 1 50 0 libs graph doc d
  • 从 C# 运行多个 python 脚本

    我希望有人能够在这里帮助我 我对 C 比较陌生 正在尝试执行我在 C winform 应用程序中编写的一些 Python 代码 我想做的是从 winform 中的文本框中输入名称 并让它通过 python 脚本进行处理 并在 winform
  • 如何检测任务栏上的右键单击

    我有一个 C 语言的 Windows 窗体应用程序 它以加载对话框开始 正如预期的那样 该应用程序的按钮会显示在 Windows 任务栏中 我想检测可能对该按钮进行的 右键单击 最终 我希望禁用右键单击或只是让加载对话框重新获得焦点 我看到
  • SQL:使用 1 个查询更新一行并返回列值

    我需要更新表中的一行 并从中获取列值 我可以这样做 UPDATE Items SET Clicks Clicks 1 WHERE Id Id SELECT Name FROM Items WHERE Id Id 这会生成 2 个对该表的计划
  • .NET 垃圾收集行为(使用 DataTable 对象)

    我想知道为什么在创建一个非常简单的 DataTable 并将其设置为 null 后 垃圾收集不会清除该 DataTable 使用的所有内存 这是一个例子 变量 Before 应等于 Removed 但事实并非如此 long Before 0
  • 当我更新具有相同数据类型的另一个列表时列表发生更改

    我的代码看起来像这样 public class Category public string CatId get set public string CatName get set public string SpecId get set
  • 将 double 转换为 float 后值不正确

    我有一些由 gcc gcc GCC 4 4 4 20100726 Red Hat 4 4 4 13 编译的执行高精度算术的 C 代码 计算的最终结果是一个 double 值 其值为 622 07999995861189 我是将双精度型转换为
  • 实施黑名单的最有效方法

    我开发了一个 Ip 过滤器 并猜测我如何使用任何类型的 esque 数据结构开发一个非常高效且快速的黑名单过滤器 我想做的很简单 每个传入 传出连接我都必须检查被阻止的 IP 列表 IP是分散的 内存使用应该是线性的 不依赖于阻止列表的数量
  • 同一个盒子上的进程间通信 - 2 个应用程序或进程之间的通信

    在同一机器上的应用程序之间实现进程间通信的最佳方法是什么 两者都是用 C 编写的 管理器应用程序将向其他应用程序发送命令 例如 停止 启动 它还将监视应用程序并可能要求提供数据 所有应用程序都将在同一台运行 Windows 7 操作系统的计

随机推荐

  • 滚动动态数据时,React Native“onViewableItemsChanged”不起作用

    我有一个 React Native FlatList 基于文档 https facebook github io react native docs flatlist html onviewableitemschanged I used o
  • `forEach` 函数中的 `return` 关键字是什么意思? [复制]

    这个问题在这里已经有答案了 button click function 1 2 3 4 5 forEach function n if n 3 it should break out here and doesn t alert anyth
  • 在 Python 中解压存档时出现错误

    我使用 Python 下载 bz2 文件 然后我想使用以下方法解压存档 def unpack file dir file cwd os getcwd os chdir dir print Unpacking file s file cmd
  • 使用 webpack 从目录动态导入图像

    这是我当前通过 ES6 在 webpack 中导入图像和图标的工作流程 import cat from images cat1 jpg import cat2 from images cat2 svg import doggy from i
  • ValueError:字符 U+6573552f...Py2aap

    我制作了一个非常简单的程序 我正在尝试将其导出到应用程序文件 我目前正在使用 Python 3 6 和 py2app 将 py 文件转换为 app 所以我创建了安装文件 from setuptools import setup OPTION
  • 如何在 dash/plotly 中使用 iframe? (Python/HTML)

    我正在创建一个仪表板 我想使用这个交互式地图 网站链接 https www ons gov uk peoplepopulationandcommunity healthandsocialcare causesofdeath articles
  • 在运行时后期更改 SessionFactory 数据源 jdbcurl

    我正在为没有网络连接的环境编写一个桌面java应用程序 我试图将应用程序数据尽可能安全地存储在加密的进程内 hsqldb 中 并使用未加密的用户信息 hsqldb Hsqldb 要求在创建连接时在 jdbcurl 中设置 crypto ke
  • JFreeChart 更改现有条形图中的数据

    我想循环更改条形图数据 但我不知道该怎么做 我的代码 DefaultCategoryDataset barChartData new DefaultCategoryDataset barChartData setValue 0 Values
  • java中简单程序中的“未为类型定义方法”错误

    所以我只是想学习 Java 在观看了一些教程并阅读了一些基本内容之后 我对为什么它无法运行感到困惑 package Test public class TestProg public static void main String args
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • AccessViolation,当从 C++/CLI 调用 C++-DLL 时

    我为 C DLL 编写了一个 C CLI 包装器 以便在 C 程序中使用此 DLL 但是 当我调用一个需要 char 的函数时 我得到了 AccessViolation int Wrapper Net methodX int a Strin
  • 为 iPhone 企业开发者计划发布应用程序

    如果我参加了员工人数超过 500 人的公司的 iPhone 企业开发人员计划 我是否仍需要在应用程序商店上发布我的应用程序 以便客户安装该应用程序 如果您不打算将应用程序发布到 App Store 那就不要这样做 iPhone 企业开发者计
  • 如何在改造中在主体内传递 JSON 数组

    intent sale redirect urls return url http example com your redirect url html cancel url http example com your cancel url
  • 改进 Java 8 查找“战争与和平”中最常见单词的方法

    我在理查德 伯德的书中读到这个问题 Find the最常用的五个词 in 战争与和平 http www gutenberg org ebooks 2600 或与此相关的任何其他文本 这是我当前的尝试 public class WarAndP
  • 为什么 scikit-learn SVM.SVC() 非常慢?

    我尝试使用SVM分类器来训练大约10万个样本的数据 但我发现它非常慢 甚至两个小时后也没有任何反应 当数据集有大约 1k 个样本时 我可以立即得到结果 我还尝试了 SGDClassifier 和朴素贝叶斯 速度相当快 几分钟内就得到了结果
  • gets 和 scanf 有什么区别?

    如果代码是 scanf s n message vs gets message 有什么区别 似乎两者都获取消息的输入 基本区别 参考您的特定场景 scanf 遇到一个时结束接受输入whitespace newline or EOF gets
  • Html2PdfConverter 示例转换

    我是 Outsystems 的新手 并且有一个每个用户都签署协议的页面 每次签署协议时 都需要将其转换为 pdf 并附加到电子邮件中并发送 我已经设置了所有电子邮件部分 为了将页面转换为 PDF 我已经安装了扩展程序 但我不确定如何继续 我
  • 在 2 个 .c 文件之间共享函数

    dir1有dir2 file1 c和file1 h dir2 有 file2 c 现在 如果我想在 file2 c 中访问 file1 c 中定义的函数 我需要在 file1 h 中声明它并在 file2 c 中包含 file1 h 这是一
  • OWIN AuthenticationOptions 在 mvc5 应用程序中运行时更新

    Hi 情况如下 我在 iis 7 上有一个带有 Identity 2 的 MVC 5 应用程序 该应用程序为多个网站提供服务 主机名是某些网站的关键 网站 另一个网站 等等 我决定在我的所有网站上使用谷歌外部登录 每个网站都应该是带有个人
  • 带方括号的 Uri.EscapeUriString

    这是一个奇怪的问题 但让我们看看它会得到什么样的回应 如果我编写一个控制台应用程序 VS 2013 NET 4 5 1 并执行这行代码 Uri EscapeUriString 我明白了 但是 如果我执行同样的事情 嗯 从技术上来说Uri E