如何在C#中编码和解码特殊字符

时间:2017-05-05 04:42:08

标签: c# decode encode

我有特殊字符trmp %al1 €haced£rs Àc17ç的文字。

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

我尝试查看Base64 encoding,decodingHTML encoding/decoding,似乎没有任何内容保留相同的数据。

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

2 个答案:

答案 0 :(得分:4)

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 :(得分: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);