为了账号安全,请及时绑定邮箱和手机立即绑定

C#是否等效于JavaScript的encodeURIComponent()?

C#是否等效于JavaScript的encodeURIComponent()?

临摹微笑 2019-11-28 15:12:21
在JavaScript中:encodeURIComponent("©√") == "%C2%A9%E2%88%9A"C#应用程序是否等效?为了转义HTML字符,我使用了:txtOut.Text = Regex.Replace(txtIn.Text, @"[\u0080-\uFFFF]",    m => @"&#" + ((int)m.Value[0]).ToString() + ";");但是我不确定如何将匹配项转换为JS使用的正确十六进制格式。例如此代码:txtOut.Text = Regex.Replace(txtIn.Text, @"[\u0080-\uFFFF]",    m => @"%" + String.Format("{0:x}", ((int)m.Value[0])));返回“ %a9%221a"for” "©√"代替"%C2%A9%E2%88%9A"。看来我需要将字符串拆分为字节或其他内容。编辑:这是一个Windows应用程序中,唯一可用的项目System.Web有:AspNetHostingPermission,AspNetHostingPermissionAttribute,和AspNetHostingPermissionLevel。
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

Uri.EscapeDataString或者HttpUtility.UrlEncode是转义要成为URL一部分的字符串的正确方法。

以字符串为例"Stack Overflow"

  • HttpUtility.UrlEncode("Stack Overflow") -> "Stack+Overflow"

  • Uri.EscapeUriString("Stack Overflow") -> "Stack%20Overflow"

  • Uri.EscapeDataString("Stack +  Overflow")->也编码"+" to "%2b"---->Stack%20%2B%20%20Overflow

当用作URL的实际部分时,只有最后一个是正确的(与查询字符串参数之一的值相反)


查看完整回答
反对 回复 2019-11-28
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

HttpUtility.HtmlEncode/解码

HttpUtility.UrlEncode/解码


System.Web如果项目中没有该程序集的引用,则可以添加该程序集的引用


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 1966 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信