【出错状况】

从数据库中返回json格式的数据,但由于数据库中的数据中有换行符,导致返回的json数据错误。

【原因分析】

用for循环语句来分析出错字段字符串中每个字符的ASCII码,可以看出存在值分别为13、10的两个字符,造成换行,导致json格式出错。

 

char tempstring = '\n';   (10)
          char tempstring = '\r;   (13)
            int tempresult=(int)tempstring;
            Response.Write(tempresult);

【解决方法】

用C#中string的replace函数替换掉这两个字符,下面是部分代码供参考。

private string cleanString(string newStr)
        {
            string tempStr = newStr.Replace((char)13, (char)0);
            return tempStr.Replace((char)10, (char)0);
        } string temp = cleanString(vUserAdvisory.AdvisoryContent);

 遗憾的是这种办法解决不了各个浏览器的兼容性,

后来这个方法可以去除:


char[] strArr =str.ToCharArray();

string newStr ="";

foreach (char crin strArr)

{

if (cr == (char)10)

{

continue;

}

if(cr==(char)13)


{


 continue;


}


newStr += cr.ToString();

}

如果你总是等来等去,最终什么都没有等到