按照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)。
答案 0 :(得分: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
答案 1 :(得分: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"));