📜  如何在 C# 中对字符串进行编码和解码(1)

📅  最后修改于: 2023-12-03 14:52:14.721000             🧑  作者: Mango

如何在 C# 中对字符串进行编码和解码

在 C# 中,我们可以使用多种方法对字符串进行编码和解码。这些方法包括 Base64 编码、URL 编码和 HTML 编码等。

Base64 编码和解码

Base64 是一种将二进制数据转换成 ASCII 字符的编码方式。在 C# 中,我们可以使用 Convert 类的 ToBase64String 方法将一个字符串转换为 Base64 编码的字符串,如下所示:

string input = "Hello, world!";
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(input));
Console.WriteLine(base64);

这里我们首先使用 Encoding.UTF8.GetBytes 方法将字符串转换为字节数组,然后使用 Convert.ToBase64String 方法将字节数组转换为 Base64 编码的字符串。输出结果为:

SGVsbG8sIHdvcmxkIQ==

要将一个 Base64 编码的字符串解码为原始字符串,我们可以使用 Convert 类的 FromBase64String 方法,如下所示:

string base64 = "SGVsbG8sIHdvcmxkIQ==";
string input = Encoding.UTF8.GetString(Convert.FromBase64String(base64));
Console.WriteLine(input);

这里我们首先使用 Convert.FromBase64String 方法将 Base64 编码的字符串解码成字节数组,然后使用 Encoding.UTF8.GetString 方法将字节数组转换为原始字符串。输出结果为:

Hello, world!
URL 编码和解码

URL 编码是一种将 URL 中特殊字符转换为可用的 ASCII 字符的过程。在 C# 中,我们可以使用 WebUtility 类的 UrlEncode 方法进行 URL 编码,如下所示:

string input = "http://www.example.com/some path?name=value";
string urlEncoded = WebUtility.UrlEncode(input);
Console.WriteLine(urlEncoded);

这里我们使用 WebUtility.UrlEncode 方法将 URL 进行编码,输出结果为:

http%3a%2f%2fwww.example.com%2fsome+path%3fname%3dvalue

要将一个 URL 编码的字符串解码为原始字符串,我们可以使用 WebUtility 类的 UrlDecode 方法,如下所示:

string urlEncoded = "http%3a%2f%2fwww.example.com%2fsome+path%3fname%3dvalue";
string input = WebUtility.UrlDecode(urlEncoded);
Console.WriteLine(input);

这里我们使用 WebUtility.UrlDecode 方法将 URL 进行解码,输出结果为:

http://www.example.com/some path?name=value
HTML 编码和解码

HTML 编码是一种将 HTML 中特殊字符转换为实体字符的过程。在 C# 中,我们可以使用 WebUtility 类的 HtmlEncode 方法进行 HTML 编码,如下所示:

string input = "<html><body><h1>Hello, world!</h1></body></html>";
string htmlEncoded = WebUtility.HtmlEncode(input);
Console.WriteLine(htmlEncoded);

这里我们使用 WebUtility.HtmlEncode 方法将 HTML 进行编码,输出结果为:

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello, world!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;

要将一个 HTML 编码的字符串解码为原始字符串,我们可以使用 WebUtility 类的 HtmlDecode 方法,如下所示:

string htmlEncoded = "&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello, world!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;";
string input = WebUtility.HtmlDecode(htmlEncoded);
Console.WriteLine(input);

这里我们使用 WebUtility.HtmlDecode 方法将 HTML 进行解码,输出结果为:

<html><body><h1>Hello, world!</h1></body></html>

以上就是在 C# 中对字符串进行编码和解码的方法,希望对大家有所帮助。