无法从 UTF8 转换为 ASCII

Cannot convert from UTF8 to ASCII

我使用了一些在线编码检测,所以他们都说

2015%2d03%2d31

采用UTF8编码。

所以我用这个代码来解码它并查看

2015-03-31

但是没用。

private static string UTF8toASCII(string text)
        {
            System.Text.Encoding utf8 = System.Text.Encoding.UTF8;
            Byte[] encodedBytes = utf8.GetBytes(text);
            Byte[] convertedBytes =
                    Encoding.Convert(Encoding.UTF8, Encoding.ASCII, encodedBytes);
            System.Text.Encoding ascii = System.Text.Encoding.ASCII;

            return ascii.GetString(convertedBytes);
        }

有线索吗?

这不是 UTF-8 编码,而是 URL 编码。使用 UrlDecode:https://msdn.microsoft.com/en-us/library/system.web.httputility.urldecode%28v=vs.110%29.aspx

return System.Web.HttpUtility.UrlDecode(text);

如果您的文本实际上可能包含 UTF-8 数据,您可以使用此版本:

return System.Web.HttpUtility.UrlDecode(Encoding.UTF8.GetBytes(text), Encoding.UTF8)