2

根据 W3C 标准解码 asp.net 中的特殊字符。ASCII - URL 编码图表。一些特殊字符没有被转换而是转换为“?”,检查下面的问题,%92 ASCII 的实际结果是“`”,我试图实现这一点以解码为 urlencoding 相等字符。

strurl="Workers%92+Accommodation";
string strdecode=Server.UrlDecode(strurl);

例如:ASCII 代码 %92(根据 W3C 标准 url 编码用于 ' - 键盘中没有,请参阅http://www.w3schools.com/TAGS/ref_urlencode.asp)。

4

2 回答 2

4

尝试用这个编码/解码:

public static string EncodeString(string decodedString)
{
    return Convert.ToBase64String(Encoding.UTF8.GetBytes(decodedString));
}

public static string DecodeString(string encodedString)
{
    return Encoding.UTF8.GetString(Convert.FromBase64String(encodedString));
}

编辑添加:当您要通过 URL 传输值时,使用的方法是:HttpServerUtility.UrlTokenEncode() 方法

参考:http: //msdn.microsoft.com/en-us/library/system.web.httpserverutility.urltokenencode.aspx

于 2013-04-23T07:45:42.823 回答
2

您必须使用适当的编码代码页进行解码。引用http://www.ascii-code.com

8 位 ASCII 表有几种不同的变体。下表根据 ISO 8859-1,也称为 ISO Latin-1....

根据http://en.wikipedia.org/wiki/Windows_code_page,ISO Latin-1 的代码页是1252. 要解码您的字符串,只需执行以下操作:

strurl = Encoding.GetEncoding(1252).
             GetString(HttpUtility.UrlDecodeToBytes("%92"));
于 2013-04-23T08:47:06.397 回答