我需要将带有非url安全字符的字符串(示例包括',“和&以及西班牙语/法语/德语中的重音字母)转换为可用作URL中锚点的格式
e.g。 www.site.com#的锚
我已经尝试过HttpUtility.HtmlAttributeEncode(s)和HttpUtility.UrlEncode(s) - 它们可以像收费一样工作,但它们不会产生实际正常工作的锚字符串(在Firefox中测试)
目前我正在更换有问题的角色以使其发挥作用,但我认为必须有更通用的方法才能用于此目的。
答案 0 :(得分:2)
你会同时使用两者。首先,您对锚点进行编码,使其在URL中起作用,然后对整个URL进行编码,使其在HTML属性中起作用:
HttpUtility.HtmlAttributeEncode("http://www.site.com#" + HttpUtility.UrlEncode(s))