【问题标题】:Cannot convert from UTF8 to ASCII无法从 UTF8 转换为 ASCII
【发布时间】:2015-06-04 21:16:11
【问题描述】:

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

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);
        }

有什么线索吗?

【问题讨论】:

    标签: c# .net string utf-8 decoding


    【解决方案1】:

    这不是 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)
    

    【讨论】:

      猜你喜欢
      • 2011-05-20
      • 1970-01-01
      • 2018-05-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2019-10-31
      • 2017-03-30
      • 2012-01-09
      相关资源
      最近更新 更多