- ลอง encode และ decode url
- ลอง encode ภาษาไทย
- ลอง encode ภาษาไทย ทีมีช่องว่าง
- แยกสตริงมาทำ url encoding แล้วค่อยนำกลับมารวมกัน
- HttpUtility.UrlEncode Method
- WebUtility.UrlEncode(String) Method
- HttpServerUtility.UrlEncode Method ยังไม่ได้ลอง
1.ลอง encode และ decode url
ลอง encode url ด้วย HttpUtility.UrlEncode() และ WebUtility.UrlEncode()
Add reference ชื่อ System.Web
using System;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
string url = "https://phaisarn.com/";
Console.WriteLine("Url is " + url);
// Encode
string urlEncode1 = System.Web.HttpUtility.UrlEncode(url);
Console.WriteLine("HttpUtility.UrlEncode is " + urlEncode1);
string urlEncode2 = System.Net.WebUtility.UrlEncode(url);
Console.WriteLine("WebUtility.UrlEncode is " + urlEncode2);
// Decode
string urlDecode1 = System.Web.HttpUtility.UrlDecode(urlEncode1);
Console.WriteLine("HttpUtility.UrlDecode is " + urlDecode1);
string urlDecode2 = System.Net.WebUtility.UrlDecode(urlEncode2);
Console.WriteLine("WebUtility.urlDecode is " + urlDecode2);
}
}
}
Url is https://phaisarn.com/ HttpUtility.UrlEncode is https%3a%2f%2fphaisarn.com%2f WebUtility.UrlEncode is https%3A%2F%2Fphaisarn.com%2F HttpUtility.UrlDecode is https://phaisarn.com/ WebUtility.urlDecode is https://phaisarn.com/
จะเห็นได้ว่าถ้าเป็น HttpUtility.UrlEncode จะได้ตัวพิมพ์เล็ก แต่ถ้าใช้ WebUtility.UrlEncode จะได้ตัวพิมพ์ใหญ่
2.ลอง encode ภาษาไทย
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
string text = "ไพศาล";
Console.WriteLine("Text is " + text);
string urlEncode1 = System.Web.HttpUtility.UrlEncode(text);
Console.WriteLine("HttpUtility.UrlEncode is " + urlEncode1);
string urlEncode2 = System.Net.WebUtility.UrlEncode(text);
Console.WriteLine("WebUtility.UrlEncode is " + urlEncode2);
}
}
}
Text is ไพศาล HttpUtility.UrlEncode is %e0%b9%84%e0%b8%9e%e0%b8%a8%e0%b8%b2%e0%b8%a5 WebUtility.UrlEncode is %E0%B9%84%E0%B8%9E%E0%B8%A8%E0%B8%B2%E0%B8%A5
3.ลอง encode ภาษาไทย ทีมีช่องว่าง
using System;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
string text = "ไพศาล สุธีบรรเจิด";
Console.WriteLine("Text is " + text);
string urlEncode1 = System.Web.HttpUtility.UrlEncode(text);
Console.WriteLine("HttpUtility.UrlEncode is " + urlEncode1);
string urlEncode2 = System.Net.WebUtility.UrlEncode(text);
Console.WriteLine("WebUtility.UrlEncode is " + urlEncode2);
}
}
}
Text is ไพศาล สุธีบรรเจิด HttpUtility.UrlEncode is %e0%b9%84%e0%b8%9e%e0%b8%a8%e0%b8%b2%e0%b8%a5+%e0%b8%aa%e0%b8%b8%e0%b8%98%e0%b8%b5%e0%b8%9a%e0%b8%a3%e0%b8%a3%e0%b9%80%e0%b8%88%e0%b8%b4%e0%b8%94 WebUtility.UrlEncode is %E0%B9%84%E0%B8%9E%E0%B8%A8%E0%B8%B2%E0%B8%A5+%E0%B8%AA%E0%B8%B8%E0%B8%98%E0%B8%B5%E0%B8%9A%E0%B8%A3%E0%B8%A3%E0%B9%80%E0%B8%88%E0%B8%B4%E0%B8%94
จะเห็นได้ว่าช่องว่างกลายเป็น + ซึ่งที่จริงควรจะเป็น %20
4.แยกสตริงมาทำ url encoding แล้วค่อยนำกลับมารวมกัน
using System;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
string text = "ไพศาล สุธีบรรเจิด";
Console.WriteLine("Text is " + text);
string[] list = text.Split(' ');
string urlEncode1 = "";
string urlEncode2 = "";
for (int i = 0; i < list.Length; i++)
{
if (i + 1 == list.Length)
{
urlEncode1 += System.Web.HttpUtility.UrlEncode(list[i]);
urlEncode2 += System.Net.WebUtility.UrlEncode(list[i]);
}
else
{
urlEncode1 += System.Web.HttpUtility.UrlEncode(list[i]) + "%20";
urlEncode2 += System.Net.WebUtility.UrlEncode(list[i]) + "%20";
}
}
Console.WriteLine("HttpUtility.UrlEncode is " + urlEncode1);
Console.WriteLine("WebUtility.UrlEncode is " + urlEncode2);
}
}
}
Text is ไพศาล สุธีบรรเจิด HttpUtility.UrlEncode is %e0%b9%84%e0%b8%9e%e0%b8%a8%e0%b8%b2%e0%b8%a5%20%e0%b8%aa%e0%b8%b8%e0%b8%98%e0%b8%b5%e0%b8%9a%e0%b8%a3%e0%b8%a3%e0%b9%80%e0%b8%88%e0%b8%b4%e0%b8%94 WebUtility.UrlEncode is %E0%B9%84%E0%B8%9E%E0%B8%A8%E0%B8%B2%E0%B8%A5%20%E0%B8%AA%E0%B8%B8%E0%B8%98%E0%B8%B5%E0%B8%9A%E0%B8%A3%E0%B8%A3%E0%B9%80%E0%B8%88%E0%B8%B4%E0%B8%94
ทีนี้ลอง copy url จาก browser มาวางที่ notepad เพื่อเทียบดู ก็จะเห็นคำว่า ไพศาล สุธีบรรเจิด เข้ารหัสได้ถูกต้องละ
Link