目的: encodeURIComponent , encodeURI的用法
實際範例: 參考 V60202 - get_SPPick(string SP = "", string WH="" ,)
實際範例: 參考 V60202 - get_SPPick(string SP = "", string WH="" ,)
→ 用於單一參數值,會編碼大部分特殊字元(包括 ?, &,#,=,庫房)
Ex: encodeURIComponent(17#) --> 17%23
2>encodeURL--> 用於整個 URL,只編碼不合法字元,但會保留 ?, &, #,=,等字元
Ex: encodeURL(17#) --> 17# , 保留# 3> *.cs Uri.UnescapeDataString --> 它會把
%xx 格式的字元還原成原始文字 Ex: Uri.UnescapeDataString(17%23) -- 17#
Uri.UnescapeDataString(%E5%BA%AB%E6%88%BF) -- 庫房
4> *.cs Uri.escapeDataString --> 它會把 原始文字 編碼成
Ex: Uri.escapeDataString('17#') -- 17%23%xx 格式 Uri.escapeDataString('庫房') -- %E5%BA%AB%E6%88%BF
5>url參數傳至後端 [HttpPost] --> 會自動解碼, %xx --> 字元(%23 --> #)
[HttpPost]
[HttpPost]
//前端 WH: 17%23 --> 後端 WH: 17#
//前端 WH: 17%2523 --> 後端 WH: 17%23 (原本 %23去編碼 --> 還原成 %23)
public dynamic get_SPPick(string SP = "", string WH="" ,int isComplete = 0)
{
string Tmp_Sql = " SELECT DISTINCT SP , WH "
+ " FROM AMM_COMP "
+ " WHERE 1=1 "
+ " AND SP IS NOT NULL "
+ " AND STAT='A' ";
if (!myfunc.checkisnull(WH))
{
//WH: 17# , Uri.UnescapeDataString(WH) --> 17#
//WH: 17%23, Uri.UnescapeDataString(WH) --> 17#
WH = Uri.UnescapeDataString(WH);
Tmp_Sql = Tmp_Sql + " AND WH=" + myfunc.AA(WH);
}
Tmp_Sql = Tmp_Sql + " ORDER BY SP ";
string n = funId + "s_SP";
DataSet ds = setupPickDs(n, Tmp_Sql, new string[] { "AMM_COMP" });
if (SP != null && !SP.Equals(""))
{
if (isComplete == 1)
{
ds = getPickDsbyCondi(n, "SP='" + SP + "'");
}
else
{
ds = getPickDsbyCondi(n, "SP LIKE '%" + SP + "%'");
}
}
return ds;
} // end of get_SPPick
public dynamic get_SPPick(string SP = "", string WH="" ,int isComplete = 0)
{
string Tmp_Sql = " SELECT DISTINCT SP , WH "
+ " FROM AMM_COMP "
+ " WHERE 1=1 "
+ " AND SP IS NOT NULL "
+ " AND STAT='A' ";
if (!myfunc.checkisnull(WH))
{
//WH: 17# , Uri.UnescapeDataString(WH) --> 17#
//WH: 17%23, Uri.UnescapeDataString(WH) --> 17#
WH = Uri.UnescapeDataString(WH);
Tmp_Sql = Tmp_Sql + " AND WH=" + myfunc.AA(WH);
}
Tmp_Sql = Tmp_Sql + " ORDER BY SP ";
string n = funId + "s_SP";
DataSet ds = setupPickDs(n, Tmp_Sql, new string[] { "AMM_COMP" });
if (SP != null && !SP.Equals(""))
{
if (isComplete == 1)
{
ds = getPickDsbyCondi(n, "SP='" + SP + "'");
}
else
{
ds = getPickDsbyCondi(n, "SP LIKE '%" + SP + "%'");
}
}
return ds;
} // end of get_SPPick
沒有留言:
張貼留言