如何在 C# 中编码和解码特殊字符
How to encode and decode special chars in C#
我有带有特殊字符的文本 trmp %al1 €haced£rs Àc17ç
。
考虑到我传递数据的通道不支持这些特殊字符,目标需要解码编码文本以获取原始数据。
我试着查看 Base64 encoding,decoding
或 HTML encoding/decoding
,但似乎没有任何内容保留相同的数据。
源和目标是C# process (supports these charset)
Html encoding/decoding 似乎对我有用:
using System;
using System.Net;
namespace Whosebug_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();
}
}
}
此外,在 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);
我有带有特殊字符的文本 trmp %al1 €haced£rs Àc17ç
。
考虑到我传递数据的通道不支持这些特殊字符,目标需要解码编码文本以获取原始数据。
我试着查看 Base64 encoding,decoding
或 HTML encoding/decoding
,但似乎没有任何内容保留相同的数据。
源和目标是C# process (supports these charset)
Html encoding/decoding 似乎对我有用:
using System;
using System.Net;
namespace Whosebug_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();
}
}
}
此外,在 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);