格式化要用作锚标记的字符串(#书签)并将其设置为HTML元素的ID属性

时间:2012-07-12 11:09:18

标签: c#

我需要将带有非url安全字符的字符串(示例包括',“和&以及西班牙语/法语/德语中的重音字母)转换为可用作URL中锚点的格式

e.g。 www.site.com#的

我已经尝试过HttpUtility.HtmlAttributeEncode(s)和HttpUtility.UrlEncode(s) - 它们可以像收费一样工作,但它们不会产生实际正常工作的锚字符串(在Firefox中测试)

目前我正在更换有问题的角色以使其发挥作用,但我认为必须有更通用的方法才能用于此目的。

1 个答案:

答案 0 :(得分:2)

你会同时使用两者。首先,您对锚点进行编码,使其在URL中起作用,然后对整个URL进行编码,使其在HTML属性中起作用:

HttpUtility.HtmlAttributeEncode("http://www.site.com#" + HttpUtility.UrlEncode(s))