在我的 MVC 应用程序中,有时我会动态创建查询字符串:一次来自 javascript,一次来自 c# 服务器代码。在 javascript 中,我使用的是encodeURIComponent(value)
,而在 c# 中,我使用的是HttpUtility.UrlEncode(value)
来自System.Web
假设,我有空间,value
例如:aq:
encodeURIComponent(value)
返回a%20qHttpUtility.UrlEncode(value)
返回a+q
使用这两种方法对空间进行不同的编码。这是否是它以这种方式工作的任何原因,与“很久以前就这样写并且保持不变”不同?
另外,假设我有加号,value
例如:a+q
encodeURIComponent(value)
返回a%2BqHttpUtility.UrlEncode(value)
返回a%2bq
js 方法返回大写编码字符,而 c# 方法返回小写字符。
与这两种方法并行合作以使应用程序以一致的方式运行的最佳方法是什么?我应该编写替代 c# 方法来模仿 js 方法的行为吗?我想解码方法有相同的差异。是否有任何“正确”的方式与这些一起工作?