c#编码转换?

WtF*_*dgE 2 .net html encoding

我有一个字符串,看起来像:

 À l'intérieur
Run Code Online (Sandbox Code Playgroud)

但它必须是:

 À l'intérieur
Run Code Online (Sandbox Code Playgroud)

我尝试改变转换.我知道它被读作ASCII编码.所以我尝试使用代码:

      ASCIIEncoding ASCII  = new System.Text.ASCIIEncoding();
      Byte[] BytesMessage = ASCII.GetBytes(Title);
      Title = Encoding.UTF8.GetString(BytesMessage);
Run Code Online (Sandbox Code Playgroud)

我尝试在不同的编码之间切换,但它没有多大帮助.有没有办法来解决这个问题?

谢谢!

Joe*_*oey 6

嗯,这实际上不是字符编码(例如ASCII或UTF-8),而是定义任意字符的转义序列的更高级协议 - 在这种情况下SGML作为HTML和XML的基础.

您可以使用HttpUtility类的HtmlDecode方法对其进行解码:

PS> Add-Type -AssemblyName system.web
PS> [web.httputility]::HtmlDecode("À l'intérieur")
À l'intérieur
Run Code Online (Sandbox Code Playgroud)

但是,此类驻留在System.Web命名空间中,因此可能无法立即在非ASP.NET项目中使用.