在 JavaScript 中:
encodeURIComponent("©√") == "%C2%A9%E2%88%9A"
对于 C # 应用程序来说,有没有一种等效的方法:
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。