编码一个下划线到%5F

问题描述:

我想使用HttpUtility.HtmlEncode编码下划线到%5f,但编码值不给我十六进制表示。我将如何做到这一点?编码一个下划线到%5F

string encodedValue = HttpUtility.HtmlEncode("First_Name"); 

我想在encodedValue字符串中的值是“First%5FName”。

有什么我失踪?我也尝试过使用HttpUtility.UrlEncode,但是这并没有给我期望的结果。

我知道这应该是简单的,但我无法绕过它。

+0

*做什么*这给你吗? – KingCronus 2013-04-29 16:02:47

+8

您正在考虑'HttpUtility.UrlEncode'。但是这不会做,因为'_'不是HTML或URL中的保留字符。所以大多数标准的实用程序将不会使用它们的编码方法进行编码 – 2013-04-29 16:04:39

+0

这里是DMoses声明的参考http://www.rfc-editor.org/rfc/rfc1738.txt – MUG4N 2013-04-29 16:08:35

,如果你只是想%5f更换_,你可以只使用myString.Replace("_", "%5f");

+0

这就是我最终做到的。所以我会将此标记为答案。 – TK1 2013-04-29 22:13:04

这是一个老问题,但一个字符转换成其HexEscape格式,你应该使用:

myString.Replace("_", Uri.HexEscape("_"));