如何在C#中将"=?utf-8?B?...?="解码为字符串

Ali*_*Net 13 c# string unicode utf-8

我使用Visual Studio 2010,C#来阅读Gmail收件箱IMAP,它可以作为一个魅力,但我认为Unicode不完全支持,因为我不能轻易获得波斯语(波斯语)字符串.

比如我有我的字符串:????但是IMAP给了我:"=?utf-8?B?2LPZhNin2YU=?=".

如何将其转换为原始字符串?将utf-8转换为字符串的任何提示?

Hei*_*nzi 23

我们来看看MIME编码的含义:

=?utf-8?B?...something...?=
    ^   ^
    |   +--- The bytes are Base64 encoded
    |
    +---- The string is UTF-8 encoded
Run Code Online (Sandbox Code Playgroud)

因此,要对此进行解码,请...something...从字符串中取出(2LPZhNin2YU=在您的情况下)然后

  1. 反转Base64编码

    var bytes = Convert.FromBase64String("2LPZhNin2YU=");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将字节解释为UTF8字符串

    var text = Encoding.UTF8.GetString(bytes);
    
    Run Code Online (Sandbox Code Playgroud)

text 现在应该包含所需的结果.


可以在维基百科中找到此格式的说明:

  • @Ali_dotNet:是的,它们是 MIME 转义,应该被删除。 (2认同)