在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])));
返回“对于"©√"
而不是"%C2%A9%E2%88%9A"
,返回%a9%221a"
。看起来我需要将字符串拆分成字节或其他东西。
编辑:这是针对windows应用程序的,System.Web
中仅提供:AspNetHostingPermission
、AspNetHostingPermissionAttribute
和AspNetHostingPermissionLevel
。
发布于 2008-09-17 19:06:22
HttpUtility.HtmlEncode
/解码
HttpUtility.UrlEncode
/解码
如果System.Web
程序集在项目中不可用,则可以添加对该程序集的引用
发布于 2008-09-17 19:07:08
当您没有访问Server
对象的权限时,可以尝试使用Server.UrlEncode()
或System.Web.HttpUtility.UrlEncode()
。还可以使用System.Uri.EscapeUriString()
避免添加对System.Web
程序集的引用。
发布于 2008-09-17 19:06:41
您可以在System.Web命名空间中使用服务器对象
Server.UrlEncode、Server.UrlDecode、Server.HtmlEncode和Server.HtmlDecode。
编辑: poster补充说,这是一个windows应用程序,而不是人们所相信的web应用程序。上面列出的项可以从System.Web中的HttpUtility类获得,它必须作为对项目的引用添加。
https://stackoverflow.com/questions/86477
复制相似问题