繁体   English   中英

在asp.net 4.0中解码-特殊字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM