C# encodeuricomponent 编码转换
时间: 2023-07-12 14:09:27 浏览: 166
在 C# 中,可以使用 System.Uri 类中的静态方法 Uri.EscapeDataString() 来进行 URL 编码。该方法可以将字符串中的特殊字符转换为对应的 URL 编码表示形式。例如:
```csharp
string originalString = "hello world!";
string encodedString = Uri.EscapeDataString(originalString);
Console.WriteLine(encodedString); // 输出:hello%20world%21
```
其中,空格被转换为 %20,感叹号被转换为 %21。
如果要进行反向操作,即将 URL 编码的字符串转换为原始字符串,可以使用 System.Net.WebUtility.UrlDecode() 方法。例如:
```csharp
string encodedString = "hello%20world%21";
string originalString = System.Net.WebUtility.UrlDecode(encodedString);
Console.WriteLine(originalString); // 输出:hello world!
```
注意,这里使用的是 System.Net.WebUtility.UrlDecode() 方法,而不是 System.Uri.UnescapeDataString() 方法。因为前者可以正确处理空格被编码为加号的情况,而后者不会。
相关问题
C# 实现encodeURIComponent()效果
在 C# 中,可以使用 System.Net 命名空间中的 WebUtility.UrlEncode() 方法来实现 encodeURIComponent() 的效果。
示例代码:
```csharp
using System;
using System.Net;
class Program {
static void Main(string[] args) {
string str = "编码测试:&%#";
string encodedStr = WebUtility.UrlEncode(str);
Console.WriteLine(encodedStr); // 输出:%E7%BC%96%E7%A0%81%E6%B5%8B%E8%AF%95%EF%BC%9A%26%25%23
}
}
```
WebUtility.UrlEncode() 方法将字符串中的非 ASCII 字符和一些特殊字符转换成它们的编码表示。在上面的示例中,"&"、"%" 和 "#" 等特殊字符都被转换成了它们的编码形式。
js中encodeURIComponent与C#中HttpUtility.UrlEncode
两者都是将字符串进行URL编码,但是具体实现略有不同。
encodeURIComponent是JavaScript中的函数,用于将字符串进行URI编码。它会对所有非字母数字字符进行编码(例如空格会被转换为%20),而且不会对以下字符进行编码:- _ . ! ~ * ' ( )。该函数适用于将整个URL进行编码。
HttpUtility.UrlEncode是.NET框架中的类库,用于将字符串进行URL编码。它会对所有非字母数字字符进行编码(例如空格会被转换为%20),而且会对所有字符进行编码。该类库适用于将URL中的某个参数进行编码。
因此,如果需要对整个URL进行编码,可以使用encodeURIComponent;如果需要对URL中某个参数进行编码,则可以使用HttpUtility.UrlEncode。
阅读全文