[英]Decoding in asp.net 4.0 - Special Characters
根据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 )。
尝试使用此编码/解码:
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/zh-cn/library/system.web.httpserverutility.urltokenencode.aspx
您必须使用适当的编码代码页进行解码。 从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"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.