将“代码字符串”解码为UTF8和字符串

时间:2017-11-09 03:10:05

标签: c# utf-8

首先,对不起我的知识...

最重要的是我有字符串类型值%B3%F3%C7%F9

因为我从其他处理器收到它,我不知道它是怎么做的......(只是我收到这个字符串) 我只知道的是

  1. 这是韩语编码的东西(我猜是농협
  2. 编码方法是utf-8euc-kr
  3. 之一

    我要做的是将这个奇怪的编码字符串解码为utf-8字符串。 (例如,将%B3%F3%C7%F9解码为농협并为其指定字符串类型变量

    感谢您的关注

    (我在ASP.NET Core 1.1中工作)

1 个答案:

答案 0 :(得分:1)

您的%值基本上是URL编码,因此%F9表示字节值为249。

因此,您需要做的第一件事就是将其转换为字节数组。在我的例子中,我这样做是一种潜在的低效方式。完成后,您需要使用EUC-KR编码类型将该字节数组转换为字符串。

public static void Main()
{
    string data = "%B3%F3%C7%F9";
    byte[] bData = new byte[data.Length / 3];
    for (int i = 0; i < data.Length; i += 3)
    {
        int pos = i / 3;            
        bData[pos] = Convert.ToByte(data.Substring(i + 1, 2), 16);
    }
    data = System.Text.Encoding.GetEncoding("euc-kr").GetString(bData);
    Console.WriteLine(data);
}

Fiddle