2017-05-05 79 views
2

我有特殊字符的文本trmp %al1 €haced£rs Àc17ç如何编码和解码特殊字符在C#

考虑到我传递数据的通道不支持这些特殊字符,并且目标需要解码编码文本以获取原始数据。

我试着看Base64 encoding,decodingHTML encoding/decoding并没有什么似乎保留相同的数据。

源和目的地被C# process (supports these charset)

+0

的Base64将不起作用在这种情况下,因为它适用于可打印的字符集。 – loneshark99

+0

渠道支持哪些字符集? –

回答

3

HTML编码/解码似乎为我工作:也

using System; 
using System.Net; 

namespace StackOverflow_EncodingSpecialCharacters 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      const string input = @"trmp % al1 €haced£rs Àc17ç"; 
      Console.WriteLine($"Input: \t{input}"); 

      string encoded = WebUtility.HtmlEncode(input); 
      Console.WriteLine($"Encoded: \t{encoded}"); 

      string output = WebUtility.HtmlDecode(encoded); 
      Console.WriteLine($"Output: \t{output}"); 

      Console.ReadKey(); 
     } 
    } 
} 
1

,System.Web程序集下:

  string decoded = System.Web.HttpUtility.HtmlDecode(input); 
      string encoded = System.Web.HttpUtility.HtmlEncode(input); 

// similar for URLs (like converting the space to plus sign, etc.) 
      string urldecoded = System.Web.HttpUtility.UrlDecode(url); 
      string urlencoded = System.Web.HttpUtility.UrlEncode(url);