晨曦讨论666与23333:有木有wifi且耐用5毛的QAQ解析
666 23333

有无线网络吗?有无线网络吗?
可用且耐用的 5 羊毛 QAQ
解析返回的JSON
“DisUserId”:“1090”,
"DisId": "1141",
"HeadPic": "UpLoadImg/HeadImage/9d78b3ff-c1c5-485b-8d69-dc35bfdd98e8.jpg",
“昵称”:“早晨的太阳”,
"DicussInfo": "666++++++23333",
"讨论时间": "2016/10/19 13:50:39"
},
“DisUserId”:“1090”,
"DisId": "1142",
"HeadPic": "UpLoadImg/HeadImage/9d78b3ff-c1c5-485b-8d69-dc35bfdd98e8.jpg",
“昵称”:“早晨的太阳”,
"DicussInfo": "%e6%9c%89%e6%9c%a8%e6%9c%89wifi +%e6%9c%89%e6%9c%a8%e6%9c%89wifi",
"讨论时间": "2016/10/19 13:52:44"
},前端解码后仍然有+++符号
Server.UrlEncode 编码内容中空格变为加号的说明:
在界面中
Context.Response.Charset="utf-8";
Context.Response.AddHeader("内容类型","文本/纯文本;charset=utf-8");
这时问题就出现了,因为UrlEncode在编码时将空格转换为加号(‘+’),在解码时将加号转换为空格,但是浏览器无法将加号理解为空格,或者空格就变成了加。
参考
解决方案:
1:
Server.UrlEncode=》Uri.EscapeDataString参考
2:
Regex.Replace( HttpUtility.UrlEncode("c# urlencode 空格变加号 解决办法"),@"\+","%20");
编码后返回的JSON信息
请注意,符号 +++ 已更改为 %20(空格) // 空格被解释为 %20
“DisUserId”:“1090”,
"DisId": "1142",
"HeadPic": "UpLoadImg/HeadImage/9d78b3ff-c1c5-485b-8d69-dc35bfdd98e8.jpg",
“昵称”:“早晨的太阳”,
"DicussInfo": "%E6%9C%89%E8%80%8C%E4%B8%94%E8%80%90%E7%94%A85%E6%AF%9B%E7%9A%84 %20% 20%20QAQ",
"讨论时间": "2016/10/19 13:52:44"
},
解码后弹出的信息是:
但经过测试
ad+++asd 这种数据使用EscapeDataString将+号改为ad%2B%2B%2Basd。前端还需要通过decodeURIComponent来解析,所以不太适合。
改为EscapeUriString,既有空格又有+号,6546++++56465,得到的数据是6546%20%20%20++++%2056465
如果你不想使用这两种方法,还有另一种方法:
public string FormarUrlDecode(string info)
{
if (string.IsNullOrEmpty(info)) return "";
if (info.IndexOf("+") >= 0)
{
return info;
}
else
{
return HttpUtility.UrlDecode(info);
}
}
直接返回6546 ++++ 56465这样的数据