收藏
回答

发现一个BUG: 小程序页面传输参数时,会把&符号丢失。

<!-- 显示列表 -->

<view class="itemlist" wx:if="{{food_list}}">

<view class="item" wx:for="{{food_list}}" wx:key="food_listID">

<navigator url="../LawDetail/LawDetail?showType={{showType}}&dataType={{dataType}}&id={{item.id}}&SuperviseType={{item.SuperviseType}}&CaseNumber={{item.CaseNumber}}&CaseDescption={{item.CaseDescption}}">

。。。。。

这样子传的。CaseDescption中有&&&&符号,&及后面的字符全丢。

回答关注问题邀请回答
收藏

5 个回答

  • 大海²⁰²⁰
    大海²⁰²⁰
    2017-10-08

    我现在把这些符号全搞成全角的了:)



        protected string toJSonString(string s)

        {

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < s.Length; i++)

            {

                char c = s[i];

                switch (c)

                {

                    case '\"':

                        sb.Append("\\\"");

                        break;

                    case '\\':

                        sb.Append("\\\\");

                        break;

                    case '/': 

                        sb.Append("\\/"); 

                        break;

                    case '\b':

                        sb.Append("\\b");

                        break;

                    case '\f':

                        sb.Append("\\f");

                        break;

                    case '\n':

                        sb.Append("\\n");

                        break;

                    case '\r':

                        sb.Append("\\r");

                        break;

                    case '\t':

                        sb.Append("\\t");

                        break;

                    case '=':

                        sb.Append("=");

                        break;

                    case '&':

                        sb.Append("&");

                        break;

                    case '?':

                        sb.Append("?");

                        break;

                    case '%':

                        sb.Append("%");

                        break;

                    default:

                        if ((c >= 0 && c <= 31) || c == 127)//在ASCⅡ码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符

                        {


                        }

                        else

                        {

                            sb.Append(c);

                        }

                        break;

                }

            }

          

            //return Server.UrlEncode(str);

            //return Server.UrlPathEncode(Server.UrlPathEncode(str));

            //return HttpUtility.UrlPathEncode(sb.ToString());

            return sb.ToString();

        }


    2017-10-08
    有用
    回复
  • bin
    bin
    2017-10-08

    我之前是用wx.navigator方法,不是navigator标签,也出现类似的问题,后来我是只带一个ID过去到详情页,到了详情页再通过ID查出明细,这种带多个参数我总感觉会出问题的,即使在开发的时候没发现,等上线了bug就来了

    2017-10-08
    有用
    回复
  • 大海²⁰²⁰
    大海²⁰²⁰
    2017-10-08

    不是因为太长,我测试过了。 @binbin  就是因为字符。 使用encodeURI是可以的,但我这种循环记录如何在wxml中调用encodeURI....呢?并且这是循环记录参数,也不好定义一个全局变量呀,如果把我数组全放全局变量里,全局变量这么用也不太好吧?

    2017-10-08
    有用
    回复
  • bin
    bin
    2017-10-08

    URL带参太长,被截掉了,可以定义一个全局变量来保存这些信息

    2017-10-08
    有用
    回复
  • 大海²⁰²⁰
    大海²⁰²⁰
    2017-10-08

    encodeURIComponent  我知道使用这个函数,可是在这写的这种风格里,无法使用:encodeURIComponent,怎么办?

    2017-10-08
    有用
    回复
登录 后发表内容