目的: 在 Http的資料流程, 傳遞空白/標點符號之類的字元, 在接收端可能會錯誤解譯
所以必需先 URL編碼 , 將URL中不允許的字元(空白,<>,...)編碼
--> 當字元內嵌在 URL 中傳輸的文字區塊時,
這些字元 < and > 會編碼為 %3c 和 %3e
所以必需先 URL編碼 , 將URL中不允許的字元(空白,<>,...)編碼
--> 當字元內嵌在 URL 中傳輸的文字區塊時,
這些字元 < and > 會編碼為 %3c 和 %3e
處理說明: 1>TextArea 欄位,以 "\r\n" 換行
2>由後端組合好的字串, 必需先 UriEncode ,再送至前端
3>還原後端的字串,必需先 decodeURI ,
--> 但空白,可能變成+
1>*.cs
if (Tmp_TYPEAF == "6")
{ Tmp_content6 = Tmp_content6 + "提領編號:" + Tmp_GONOAF + ",交修單號:" + Tmp_RPNOAF + "\r\n"; }
else
{ Tmp_contentnot6 = Tmp_contentnot6 + "提領編號:" + Tmp_GONOAF + ",交修單號:" + Tmp_RPNOAF + "\r\n"; }
MyCookie = new HttpCookie("V20302_content6", HttpUtility.UrlEncode(Tmp_content6));
HttpContext.Current.Response.Cookies.Add(MyCookie);
var r_V20302_contentnot6 = r_cookies('V20302_contentnot6');
var Tmp_sub_contentnot6 = "已經接收器材:\r\n"
+ r_V20302_contentnot6 + "\r\n"
+ "請至 AMM系統 V20303: 進廠檢查資料登錄做後續處理。\r\n";
Ext.getCmp("sub_Subjext").setValue(Tmp_sub_Subjectnot6);
Ext.getCmp("sub_content").setValue(Tmp_sub_contentnot6);
function r_cookies(i_params) {
var cookie_token = Ext.util.Cookies.get(i_params);
return decodeURIComponent(escape(cookie_token));
}
PS1:
在 client 端送資料給 server 端時,若使用 query string 的方式,格式通常是這樣
https://www.sample.com?foo=abc&bar=def
,而若當中有空白的話,像是 foo=a b c
a、b、c 中間有空白,則會有以下加號(+
)和 %20
兩種情況(可參考這裡)。PS2: https://www.cythilya.tw/2020/07/24/encode-decode/
const encodedStr = encodeURIComponent('這是中文字串'); // encodedStr 得到 %E9%80%99%E6%98%AF%E4%B8%AD%E6%96%87%E5%AD%97%E4%B8%B2
const decodedStr = decodeURIComponent(encodedStr); // decodedStr 得到 這是中文字串
沒有留言:
張貼留言