c# urlencode空格变成+_C# Server.UrlEncode/HttpUtility.UrlEncode 编码后生成的json 内容里空格变加号 解决办法...

今天前端在群里和我说,节目评论中有空格 然后接口编码后返回的评论 空格变+++号,然后就认为编码有问题,各自进行实验和替换,好在最终解决了。

评论内容:

666      23333

有木有wifi 有木有wifi

有而且耐用5毛的   QAQ

解析返回的JSON

{

"DisUserId": "1090",

"DisId": "1141",

"HeadPic": "UpLoadImg/HeadImage/9d78b3ff-c1c5-485b-8d69-dc35bfdd98e8.jpg",

"Nickname": "晨曦",

"DicussInfo": "666++++++23333",

"DiscussTime": "2016/10/19 13:50:39"

},

{

"DisUserId": "1090",

"DisId": "1142",

"HeadPic": "UpLoadImg/HeadImage/9d78b3ff-c1c5-485b-8d69-dc35bfdd98e8.jpg",

"Nickname": "晨曦",

"DicussInfo": "%e6%9c%89%e6%9c%a8%e6%9c%89wifi+%e6%9c%89%e6%9c%a8%e6%9c%89wifi",

"DiscussTime": "2016/10/19 13:52:44"

},

前端进行解码依然有+++号

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Server.UrlEncode 编码后内容里空格变加号的解释:

接口中

Context.Response.Charset = "utf-8";

Context.Response.AddHeader("content-type", "text/

plain

; charset=utf-8");

这时候问题就来了, 因为  UrlEncode 在 Encode 的时候, 将空格转换成加号('+'), 在 Decode 的时候将加号转为空格, 但是浏览器是不能理解加号为空格的, 空格就变成了加号.

参考资料 http://blog.csdn.net/xingxing513234072/article/details/7865083

解决方法:

1:

Server.UrlEncode =》Uri.EscapeDataString  参考资料 http://www.cnblogs.com/dudu/archive/2011/02/25/asp_net_UrlEncode.html

2:

Regex.Replace( HttpUtility.UrlEncode("c# urlencode 空格变加号 解决办法"),@"\+","%20");

编码后返回的JSon信息

注意这里已经由+++号变成%20(空格)了//空格是被解释%20

{

"DisUserId": "1090",

"DisId": "1142",

"HeadPic": "UpLoadImg/HeadImage/9d78b3ff-c1c5-485b-8d69-dc35bfdd98e8.jpg",

"Nickname": "晨曦",

"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",

"DiscussTime": "2016/10/19 13:52:44"

},解码后 弹出的信息是:

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值