【问题标题】:How to decode UTF8 bytes?如何解码 UTF8 字节?
【发布时间】:2012-08-06 14:48:35
【问题描述】:

如何在 C# 中解码字符串中的 UTF8 字节?

示例:解码此输入:

"Poluci%C3%B3n"

要输出这个:

"Polución"

【问题讨论】:

  • 你有源数组吗?你可以试试System.Text.Encoding.UTF8.GetString(byteArray)
  • 这不是 UTF-8 编码的 - 它是 URL 编码的(也就是百分比编码的)。
  • 您发布的是 UTF-16 字符串,因为我们谈论的是 C#。你想做的是urldecode...
  • @oded - 这不是来自 URL,尽管它是相似的。我相信 c3b3 是 UTF8 中 U+00F3 unicode 代码点 (ó) 的十六进制表示。
  • @seldary - 这将使它成为一个 URL 编码的 UTF-8 字符串。

标签: c# encoding


【解决方案1】:

此编码似乎是 URL 编码(不是 UTF-8 编码)。您可以在 .NET 中使用多种不同的方法对其进行取消编码:

HttpUtility.UrlDecode("Poluci%C3%B3n"); // returns "Polución"
Uri.UnescapeDataString("Poluci%C3%B3n"); // returns "Polución"

【讨论】:

    【解决方案2】:

    试试这个:

    Uri.UnescapeDataString("Poluci%C3%B3n")
    

    这个问题与 UTF8 无关。它只是 URL 编码的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-03
      • 2012-08-08
      • 1970-01-01
      • 2019-03-13
      • 2012-09-10
      • 1970-01-01
      相关资源
      最近更新 更多