- ลอง 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