傳遞 DK51+700中繼站 到另一頁,接收端卻得到 DK51 700中繼口——加號被解碼為空格,「站」字因編碼不一致變成亂碼。
+ 或 %20。伺服器端解碼時會將 + 還原為空格,導致原本的「+」丟失。用 Replace("+", "%2B") 手工替換,再接收端替換回來——脆弱且難維護。
// 發送端
string name = "DK51+700中繼站";
string url = "Default2.aspx?Name=" + Server.UrlEncode(name); // 或 HttpUtility.UrlEncode
// 接收端
string name = Request.QueryString["Name"]; // ASP.NET 自動 UrlDecode
Server.UrlEncode 會將 + 編為 %2B,空格編為 +,中文按當前頁面編碼(預設 UTF-8)編碼。接收端 Request.QueryString 自動解碼,確保雙邊編碼一致即可完整還原。