目的: 網頁傳遞參數的方式 - Get & Post -
處理說明:一.編碼 & 解碼處理
1>在網頁上提交內容時,可以將內容作為參數傳遞透過GET或POST請求方式到後端。
這些有中文或特殊符號的參數(非ASCII碼)會自動進行編碼,以便它們可以在網絡上進行傳輸。
1>在網頁上提交內容時,可以將內容作為參數傳遞透過GET或POST請求方式到後端。
這些有中文或特殊符號的參數(非ASCII碼)會自動進行編碼,以便它們可以在網絡上進行傳輸。
2>中文字符會以UTF8轉成16進制去做編碼,
若遇特殊情況(&#)就沒額外處理,則導致參數無法正確傳輸或解析
--> 透過params可以將中文和符號進行編碼,
但是&# (代表Unicode編碼開頭) 的組合是無法進行編碼,會有錯誤
二.序列化 & 反序列化
序列化:將物件狀態轉換為可傳輸格式
反序列化:將資料流轉換成物件
一.編碼 & 解碼處理
[HttpPost]
public string send()
{
HttpContext c = HttpContext.Current;
NameValueCollection nvc =
c.Request.Form;
string english_tf = nvc["english_tf"];
string chinese_tf = nvc["chinese_tf"];
string text = english_tf + " ; " + chinese_tf;
return text;
}
[HttpGet]
public string send()
{
NameValueCollection nvc =
c.Request.QueryString;
string english_tf = nvc["english_tf"];
string chinese_tf =nvc["chinese_tf "];
string text = english_tf + " ; " + chinese_tf;
return text;
}
解決方法:
1>前端先編碼,再送至後端(encodeURIComponent)
2>後端先解碼,再取得原始欄位值(HttpUtility.UrlDecode)
二.序列化 & 反序列化